c#中自定义控件怎么调用主窗体中的方法

 我来答
外人GPQ
2013-12-16 · 超过62用户采纳过TA的回答
知道答主
回答量:123
采纳率:0%
帮助的人:150万
展开全部
可是现在关键的是这个自定义控件就是这个主窗体的一部分,你不能在给他添加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
chenhui389
2021-06-24
知道答主
回答量:13
采纳率:0%
帮助的人:4.4万
展开全部
标准答案是,使用ParentForm的Invoke来调用。
在自定义控件或者用户控件 的按钮事件中,写:
this.ParentForm.Invoke(使用委托调用你的窗体方法);
希望认可。欢迎点赞!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式