C# 子窗口调用父窗口对象和控件遇到的问题
父窗口和子窗口全部需要共用textbox1控件,我把控件改成public了。现在的问题是,主窗口在初始化的时候会赋子窗口窗口变量初值:如下:publicCarCarWin...
父窗口和子窗口全部需要共用textbox1控件,我把控件改成public了。
现在的问题是,主窗口在初始化的时候会赋子窗口窗口变量初值:如下:
public Car CarWindow; //定义送餐车窗口变量1
public Form1()
{
InitializeComponent();
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
CarWindow = new Car(); //给窗口变量赋初值
}
然后子窗口调用控件前又必须new一个主窗口:
public Car()
{
InitializeComponent();
Form1 frm = new Form1();
frm.textBox1.AppendText("1");
}
这样造成死循环,不知道该怎么做,学C#入门,毫无经验。。 如果要用父窗口的控件,必须先new实例么?这里的远离不是很懂,小弟分不多,愿全部送上 展开
现在的问题是,主窗口在初始化的时候会赋子窗口窗口变量初值:如下:
public Car CarWindow; //定义送餐车窗口变量1
public Form1()
{
InitializeComponent();
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
CarWindow = new Car(); //给窗口变量赋初值
}
然后子窗口调用控件前又必须new一个主窗口:
public Car()
{
InitializeComponent();
Form1 frm = new Form1();
frm.textBox1.AppendText("1");
}
这样造成死循环,不知道该怎么做,学C#入门,毫无经验。。 如果要用父窗口的控件,必须先new实例么?这里的远离不是很懂,小弟分不多,愿全部送上 展开
2个回答
展开全部
这是个相互引用造成的StackOverflow错误,不要在子窗口的构造函数里new主窗口。Car窗体改造:
private Form1 mainForm;
public Car(Form1 main)
{
InitializeComponent();
mainForm = main;
main.textBox1.AppendText("1");
}
然后主窗体的构造函数改一下,把自己传递给Car。
CarWindow = new Car(this); //给窗口变量赋初值
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询