日期:2014-05-17  浏览次数:20735 次

winform
窗体form1跟类在同一个程序里,怎么在类里面找到窗体的控件,给控件赋显示值。

------解决方案--------------------
最直接的,控件的modifers属性设为public,将窗体的实例传给类,就可以通过实例直接访问 frm.xxxxx

------解决方案--------------------

public class Class1
{
    public static SetControlValue(Form form, string ctrlName, string value)
    {
         form.Controls[ctrlName].Text = value;
    }
}


在Form里调用:

Class1.SetControlValue(this, "textbox1", "Hello");

具体你要设什么属性自己再改改
------解决方案--------------------
引用:
我按照上面方法来,可是却报错了,


这不是对象为null么
f.controls[ctrlName]是什么控件
------解决方案--------------------
引用:
是listBox1,我换成textBox1也报错


那你就按一楼说的做吧
把控件设置成public

或者你的类多写个带参数的构造方法,参数就是你要执行的控件类型或者是control 类型
------解决方案--------------------
引用:
调试能到这里,但是就是没在listbox里面显示,


 public class Test
    {
        public Test(ListBox listbox)
        {
            l = listbox;
        }
        ListBox l;

        public void AddContent()
        {
            if (l != null)
            {
                l.Items.Add("tian");
            }
        }
    }

我写的怎么就可以啊
------解决方案--------------------
你用的这个CtrlName声明了吗?
------解决方案--------------------
将控件作为参数传到类里面!