日期:2014-05-18  浏览次数:20850 次

如何在类库中调用应用程序的控件
如题,我创建了一个WinForm应用程序,如ApplicationTest,里面有一个窗体FormTest,FormTest中有几个Button按钮,btnA,btnB,btnC

然后我又建了一个类库ClassLib,里面有个方法MyInitalStyle()
我想请教一下,这个方法里面有没有什么办法可以获取设置FormTest中的按钮的属性和事件,代码是怎么写的?

------解决方案--------------------
可以的 在方法的构造函数里写

比如
C# code

//定义一个BUTTON类的全局变量
private Button bt;
PUBLIC CLASS A
{
         public a(Button a)
         {
            this.bt=a;//这样你就可以把WINFORM的BUTTON传过来了,其他也是一样的方法
         }
}

------解决方案--------------------
C# code

 public  class Styles
    {
        public Color TxtBackColor
        {
            get { return Color.Blue; }
        }
        public Color TxtForeColor
        {
            get { return Color.Red; } 
        }

        public void SetStyles(Control control)
        {
            control.BackColor = this.TxtBackColor;
            control.ForeColor = TxtForeColor;
        }
    }

//form 里面
         public Form1()
        {
            InitializeComponent();
            Styles s = new Styles();
            s.SetStyles(this.button1);
        }

------解决方案--------------------
打错了,设置属性不是函数~~
------解决方案--------------------
可以:

你把Button控件类做为参数传递就可以。

如public static MyInitalStyle(Button obj)

还有就是通过继承和属性来设计.

------解决方案--------------------
Form frm=this.findForm();
这句错了。
FORM1 FM=(FROM1)FRM;
然后再调用。
用反射也可以。只是速度慢一些。