(.NET(C#))从父窗体触发子窗体按钮(【计算】)如何实现?触发时不允许丢子窗体控件信息!
如上图:通过父窗体的工具栏按钮触发子窗体的计算按钮,如何实现?要求:第一、不能丢失textbox值;所以不能用new来实例化;第二、计算完的值在子窗体显示;...
如上图:通过父窗体的工具栏按钮触发子窗体的计算按钮,如何实现?
要求:第一、不能丢失textbox值;所以不能用new来实例化;第二、计算完的值在子窗体显示; 展开
要求:第一、不能丢失textbox值;所以不能用new来实例化;第二、计算完的值在子窗体显示; 展开
4个回答
展开全部
委托定义事件
自己做了个简单测试,相互学习下,如下
父窗体代码:
public event EventHandler MyClick;
public Form3()
{
InitializeComponent();
Form f = new Form4(this);
f.Show();
f.BringToFront();
f.TopLevel = false;
this.panel1.Controls.Add(f);
}
private void button1_Click(object sender, EventArgs e)
{
if (MyClick != null)
{
MyClick(sender, e);
}
}
子窗体代码:
public Form4()
{
InitializeComponent();
}
public Form4(Form3 paform)
{
InitializeComponent();
paform.MyClick += new System.EventHandler(this.mmss);
}
private void mmss(object sender, EventArgs e)
{
MessageBox.Show(textBox1.Text);
}
自己做了个简单测试,相互学习下,如下
父窗体代码:
public event EventHandler MyClick;
public Form3()
{
InitializeComponent();
Form f = new Form4(this);
f.Show();
f.BringToFront();
f.TopLevel = false;
this.panel1.Controls.Add(f);
}
private void button1_Click(object sender, EventArgs e)
{
if (MyClick != null)
{
MyClick(sender, e);
}
}
子窗体代码:
public Form4()
{
InitializeComponent();
}
public Form4(Form3 paform)
{
InitializeComponent();
paform.MyClick += new System.EventHandler(this.mmss);
}
private void mmss(object sender, EventArgs e)
{
MessageBox.Show(textBox1.Text);
}
展开全部
在子窗体写好方法,设成公共的,然后在父窗体保存子窗体的引用.需要时直接调用即可
追问
button事件是非static的!怎么做?
追答
把button时间要做的操作设成一个公共的方法。也是可以调用的。不一定非要通过button事件来操作吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
委托是最好的解决方案
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接调用子窗体这个计算函数就可以了啊 、
追问
我把那函数设为public 调用了之后根本获取不到子窗体textbox值啊...算完的结果也不更新到子窗体,没反应!
追答
按着楼上的方法做下,应该是对的呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询