在C#中如何用主窗口的控件控制子窗口的控件,子窗口(Win1)如何访问主窗口(Form1)的控件
用下面的方法,实现在主窗口按完toolStripButton1,子窗口在主窗口的panel1显示(为了使每个子窗口显示时,左边和上边都有主窗口的菜单栏)Win1w1;w1...
用下面的方法,实现在主窗口按完toolStripButton1,子窗口在主窗口的panel1显示(为了使每个子窗口显示时,左边和上边都有主窗口的菜单栏) Win1 w1; w1 = new Win1(); private void toolStripButton1_Click(object sender, EventArgs e) { this.panel1.Controls.Clear(); // 清空原有的控件 w1.TopLevel = false; // 非顶级窗口 w1.FormBorderStyle = FormBorderStyle.None; // 不显示标题栏 w1.Dock = System.Windows.Forms.DockStyle.Fill; // 填充panel this.panel1.Controls.Add(w1); // 添加w1窗体 w1.Show(); }在Win1中 string a = comboBox1.Text; string b = comboBox2.Text; string c = comboBox3.Text;若在comboBox1前加上Form1.,会显示不可访问,具有一定的保护级别,应该如何改
展开
展开全部
这个方法很多,比如说简单点的,先在你主窗口里声明一个变量
public static Form1 thisInstance = null;
然后在主窗口的load事件里
thisInstance = this;
之后在主窗口里加个方法
public string test()
{
return comboBox1.Text + comboBox2.Text;
}
之后在子窗口里就可以用比如MessageBox.Show(Form1.thisInstance.test()); 这种来调用这个test方法了,当然如果你要做其它的操作,比如控制主窗体控件,也可以用这种方法
public static Form1 thisInstance = null;
然后在主窗口的load事件里
thisInstance = this;
之后在主窗口里加个方法
public string test()
{
return comboBox1.Text + comboBox2.Text;
}
之后在子窗口里就可以用比如MessageBox.Show(Form1.thisInstance.test()); 这种来调用这个test方法了,当然如果你要做其它的操作,比如控制主窗体控件,也可以用这种方法
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询