跨窗体调用的问题
做一个winform界面,点击form1上的添加按钮打开编辑窗体form2
问题1:form2上增加的信息怎么添加到在form1中的控件中显示
问题2:form2怎么调用form1中的方法及属性
主要其实就是两个窗体互相调用的问题,还有一个疑惑是form1和form2是属于什么关系呢?
[解决办法]
- C# code
//Form1:一个bottom1按钮,一个label,label用来存Form2传来的值public partial class Form1 : Form { public Form1() { InitializeComponent(); } //添加按钮 private void button1_Click(object sender, EventArgs e) { //实例化Form2 Form2 f2 = new Form2(); f2.ShowDialog(this); //获取Form2传来的值,楼主根据需要定义变量接收 label1.Text = f2.textvalue; } }//Form2窗体,一个TextBox,一个Button按钮public partial class Form2 : Form { //定义公开变量,存Textbox的值 public string textvalue; public Form2() { InitializeComponent(); } //提交按钮 private void button1_Click(object sender, EventArgs e) { textvalue = textBox1.Text; } }
[解决办法]
LZ息怒,很多东西确实网上能搜得到的。这个其实是winform的子父窗体调用问题。第一,如果你是在form1中点击某个按钮,然后生成的一个form2对象,那么,form2与form1就是子父关系。 第二、如果你想在from2中调用form1的方法,那么其实你在新建form2这个对象的时候,可以把form1作为参数方式,在form2的构造函数中传递过去,在from2中就可以使用了。 第三、如果你想在form2中执行某个动作后,让它在form1中有响应,那么可以通过消息机制,具体可以google "c# sendMessage",一看就明了,在form1中重写WndProc函数,接收消息并处理机ok了。
希望可以帮助你。