我要在一个窗体里访问另一个窗体里的控件,所以在控件属性窗口里设置了public , 在定义代码里又加了 static
如 public static System.Windows.Forms.ComboBox cbSx1;
但是当我在该窗口里稍微设置了其他控件的属性,这行里的static 就没了,而且cbSx1 都变成了 this.cbSx1 , 导致程序出错,请教下该如何解决? static该写到哪里?
如 public static System.Windows.Forms.ComboBox cbSx1;
但是当我在该窗口里稍微设置了其他控件的属性,这行里的static 就没了,而且cbSx1 都变成了 this.cbSx1 , 导致程序出错,请教下该如何解决? static该写到哪里?
public ComboBox CbSx1
{
get{return cbSx1;}
}
//其他传统调用就
class1 c1=new class1();
ComboBox comboBox1 = c1.CbSx1;
{
...
private void btnAdd_Click(object sender, EventArgs e)
{
MainForm.cbSx1.text = this.textBox1.text;
}
...
}
//下面的代码是在别的窗体中调用Form3的ComboBox1控件
Form3 f3 = new Form3();
f3.ComboBox1.Items.Add("XXX");
f3.Show();//下面的代码是Form3 这个类
public partial class Form3 : Form
{
ComboBox comboBox1 = null;
public Form3()
{
InitializeComponent(); comboBox1 = new ComboBox();
comboBox1.FormattingEnabled = true;
comboBox1.Location = new System.Drawing.Point(209, 84);
comboBox1.Name = "comboBox1";
comboBox1.Size = new System.Drawing.Size(121, 20);
this.Controls.Add(comboBox1);
} public ComboBox ComboBox1
{
get { return comboBox1; }
}
}
form1里有个textBox1控件,form2里有个按钮btnOK和textBox2 , 在form1里的textBox1控件的双击事件里弹出form2,并在form2里修改textBox2的text,点击btnOK按钮后,form1里的textBox1的text就和form2里textBox2修改后的text相同。
用你的方法,创建一个form1的时候,textBox1的text就固定不变了。我将form1的textBox1的属性设置成public static后,稍微改下其他控件的属性,在MainForm.Designer.cs文件里textBox1的public static 就变成 public 了咋办呀~~~??
这行编译错误是因为MainForm是一个类,而你将它当作对象去访问它的一个属性,建议在看看面向对象基础。你可以将form1对象作为参数传给form2,这样在from2里就可以访问form1的控件了,比如:
Form2 : Form
{
private form1;
public form2(Form1 form1)
{
this.form1 = form1;
} private void btnAdd_Click(object sender, EventArgs e)
{
form1.cbSx1.text = this.textBox1.text;
}}static void Main()
{
......
MainForm form1 = new MainForm();
.......
Form2 form2 = new Form2(form1);
........
}
假设将form1里的textBox1的text = wang 修改为 zhang 后放到弹出的form2里的textBox2里呢?即双击form1里的textBox1后,弹出的form2里的textBox2与textBox1的text相同,注意:修改后的text!!
Form2 f2=new Form2();
this.textBox1.text=f2.textBox2.text;
//这样textBox2的内容就赋值给textBox1了吧!
这段代码:
public ComboBox ComboBox1
{
get { return comboBox1; }
}
应该是是写在Form1.Designer.cs文件里的吧?但是好像还缺个set方法