实际的问题比较复杂,举个例子说吧.主程序有一个FORM,上面包含很多(一般会是30个以上的Button),在处理问题的时候需要把这些BUTTON存在一个LinkedList<Button> ButtonGroup=new LinkedList<Button>();中,在需要的时候调用ButtonGroup.ElementAt(i).Location返回特定的BUTTON的位置(也可以是其他属性)
但是我想把建立LinkedList的过程放在一个DLL文件中,然后主程序通过调用方法来访问,我想问一下怎么才能在一个DLL文件中访问到主程序FORM上的BUTTON控件,以便于把他加入到LinkedList中?或者有其他什么办法做到类似的功能.

解决方案 »

  1.   

    低价转让:中#美#爱#梯#科技.Net软件工程师培训课程内容(共35G),声音清晰,课程完整!
    需要这个培训视频的朋友请联系 QQ 936652114
      

  2.   

    DLL中用Button做参数? 要用的时候在传进去
      

  3.   

    补充一点.其实这么做的目的就是,可以写多个DLL文件,分别定义多组BUTTON,这些组BUTTON的位置都不相同,比如DLL1,DLL2等,然后通过调用不同的DLL从而在FORM上快速排列组BUTTON的位置,比如DLL1中BUTTON有4个,分布在FORM中间上2个下2个,DLL2中BUTTON有6个,分布在FORM中间直线排列,而引用DLL1就可以在FORM上放置那4个BUTTON,引用DLL2就放置DLL2中定义的6个,但是所有的DLL都不会重复引用,每次只引用一个DLL
      

  4.   

    DLL代码:using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;namespace ClassLibrary1
    {
        public class Class1
        {
            public List<Button> GetButton()
            {
                Button btn1 = new Button();
                Button btn2 = new Button();
                btn1.Text = "AA";
                btn2.Text = "BB";            Point Point1 = new Point(100, 100);
                btn1.Location = Point1;            Point Point2 = new Point(0, 0);
                btn2.Location = Point2;            List<Button> listbtn = new List<Button>();
                listbtn.Add(btn1);
                listbtn.Add(btn2);            return listbtn;
            }
        }
    }
    Form端代码private void Form1_Load(object sender, EventArgs e)
            {
                ClassLibrary1.Class1 cls = new ClassLibrary1.Class1();
                foreach (Button btn in cls.GetButton())
                {
                    Controls.Add(btn);
                }
            }
      

  5.   

    这是用VS2008写的,多余的命名空间using System.Linq;要删除,在2005上面。