c#中自定义控件怎么调用主窗体中的方法
2个回答
展开全部
可是现在关键的是这个自定义控件就是这个主窗体的一部分,你不能在给他添加show了 回答: 把第一句声明Form去掉,最后一句:主窗体.tabControl1.Controls.Add(tbPage);
这句不加你直接写成Form1.tabControl1.Controls.Add(tbPage);他会提示tabcontrol要求引用,如果你之写成Form1 form;不能使用未赋值的变量form 回答: 好好看书吧 追问: 到底能不能给个答案啊,我急着用呢,你说的方法都行不通,我都试过好多次了 回答: 别的窗体代码添加用要添加的对象调用,自身添加用this指针调用。 追问: 能说清楚点吗,这个this怎么调用啊,我调用完了之后也没反应啊,我快没积分了就不能追问了,我很着急用这个 回答: 比如你要在主窗体中添加,在主窗体的后台代码中写上this.tabControl1.Controls.Add(tbPage); 追问: 大哥,我服你了,你到现在都没有看明白我问的是啥意思吧,我问的是怎么在自定义控件中给主窗体添加tabpage,而不是在主窗体中给主窗体添加tabpage, 回答: “别的窗体代码添加用要添加的对象调用”在主窗体中声明自定义控件的时候从构造函数里传入主窗体的对象,然后调用该对象的方法进行操作,或者定义一个静态类,在静态类中定义一个Form的静态对象,把主窗体传给静态对象,要操作的时候调用静态类的静态对象,建议你好好看书,把基础的东西搞清楚,不明白给你举个例子: //生成按钮单击事件(主窗体的方法)
private void btnCreat_Click(object sender, EventArgs e){if (ValidateCard()){CardRecord.CardList = CreateCard(Convert.ToInt32(cboCreateCount.Text));
new CardInfoForm(lvCard).Show();
this.Close();
} } //创建ListView,用来接收传入的ListView对象(传入的窗体)
ListView lvCard = new ListView(); public CardInfoForm(ListView listView){InitializeComponent();
//传入主窗体的ListView
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询