点击一个按钮同时加载两个Form窗体Form1、Form2,如何在这两个窗体之间传值?
解决方案 »
- C#文件流生成可读写的DLL文件
- exe怎样向dll传消息?
- 请问 CookieContainer 怎么存成文本文件?
- 如何关闭掉启动窗体
- 数据库接块错误:无法从“System.Data.SqlClient.SqlConnection”转换为“System.Data.SqlClient.SqlParameter[]”
- [紧急求助!!] 强类型DataSet 的ReadXml方法, 在ReadXml时出错, 怎样才能得到出错的行号 和具体位置呢??
- c#里为什么用Sqlcommand对象不能对datagrid里的数据更新和删除呢?只能填加??请看代码!!
- 如何访问局域网内的SQL数据库呀!时间不多了,谢谢!
- vivienne请进,解决问题
- 请教一下C#有哪些缓存框架?
- c/s非正常退出程序的问题
- VS.NET C# windows应用程序 执行代码很耗时问题
form2.xxx=yyy;
Form2:
public delegate void returnvalue(string i);
public returnvalue ReturnValue;
public Form2()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
if (ReturnValue != null)
ReturnValue(textBox1.Text);
this.Close();
}
Form1: private void button1_Click(object sender, EventArgs e)
{
Form2 temp = new Form2();
temp.ReturnValue = new Form2.returnvalue(showvalue);
temp.ShowDialog();
}
private void showvalue(string i)
{
textBox1.Text = i;
} 点击Form1的按钮弹出Form2,点击Form2按钮,返回值至Form1显示;
把你要共享的数据变量放在这个结构提里,定义为public static,
这样你命名空间中的所有类(例如Form1、Form2)中,都能访问这个结构体了这方法简单,呵呵。几乎都在用VB.NET现在,C#忘记的差不多了
namespace WindowsApplication1 {
public struct aaa{
public static int a;
} public class Form1 : System.Windows.Forms.Form{
//class Form1 //随便来个BUTTON做例子
private void button1_Click(object sender, System.EventArgs e){
aaa.a=10;
}
}
}Form2窗体里
namespace WindowsApplication1{
public class Form2 : System.Windows.Forms.Form{
private void button1_Click(object sender, System.EventArgs e){
aaa.a=20;
}
}
}这两个aaa.a是同一个变量。反正是写在命名空间里,写在类外,public static修饰,以上。
两个form 都可以通过类名.变量名 访问的到
public delegate void TreeNodeSelectedHandler( TreeNode Node);public class Form1 :Form
{
...
public TreeNodeSelectedHandler TreeNodeSelected; //Form1上的树节点的选择事件
private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
if( TreeNodeSelected != null)
{
TreeNodeSelected( e.Node );
}
}}
public class Form2 :Form
{
//Form2响应树选择事件
public void Form2_TreeNodeSelected(TreeNode Node)
{
//根据Node加载 listview
}
}//调用代码
Form1 frm1 = new Form1(..);
Form2 frm2 = new Form2(...);
frm1.TreeNodeSelected += new TreeNodeSelectedHandler(frm2.Form2_TreeNodeSelected);
frm1.Show();
frm2.Show();
public Form1:Form
{
//private System.Windows.Forms.TreeView treeView1;
public System.Windows.Forms.TreeView treeView1; //改为public
}
public Form2:Form
{
public void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
//根据e.Node加载ListView
}
}//调用代码Form1 frm1 = new Form1(..);
Form2 frm2 = new Form2(...);frm1.treeView1.AfterSelect //frm1
+= new System.Windows.Forms.TreeViewEventHandler
(frm2.treeView1_AfterSelect);//frm2frm1.Show();
frm2.Show();
冒昧问一下,能不能留个你的联系方式?