在Form1中有一个哈希表 tbmsg;( 表中放的数据是tbmsg(int id,string msg))
在Form2中有一个textbox。
我想在当Form1中的tbmsg中的数据增加后 自动显示在Form2中的textbox中
哪个大哥大姐 给个完整的DEMO啊谢谢
小弟初学C# 初来CSDN 第一次发帖
在Form2中有一个textbox。
我想在当Form1中的tbmsg中的数据增加后 自动显示在Form2中的textbox中
哪个大哥大姐 给个完整的DEMO啊谢谢
小弟初学C# 初来CSDN 第一次发帖
根据想象写的,不一定能调通,思路应该是这样的。定义事件类CEvent。cs
public static delegate void showTxtDelegate(string msg);
public static event showTxtDelegate showTxtEvent;public static void invokeShowTxt(string msg)
{
showTxtEvent(msg);
}
下面是Form2中的使用:
注册事件CEvent。showTxtEvent += new showTxtDelegate (myShowTxt);注册事件执行的函数
private void myShowTxt(string msg)
{
textBox.text = msg;
}下面是form1中的使用:
当tbmsg中的数据增加后调用函数CEvent。invokeShowTxt(string msg);
通过静态变量
通过窗体的公有属性值
通过事件
public string Form2Value
{
get
{
return this.textBox1.Text;
}
set
{
this.textBox1.Text = value;
}
}
public event EventHandler accept;
private void button1_Click ( object sender , EventArgs e )
{
if ( accept != null )
{
accept ( this , EventArgs.Empty );
}
}
Form1中
Form2 f2 = new Form2 ( );
f2.accept += new EventHandler ( f2_accept );
f2.Show ( );
void f2_accept ( object sender , EventArgs e )
{
Form2 f2 = (Form2) sender;
this.textBox1.Text = f2.Form2Value;
}
Form问题是最基本的问题,因为编写WinApp程序首先接触的对象就是它,因此在论坛中对它而产生的问题也最常见。
与Form相关的常见问题大致分为如下的四类问题。第一类问题:如何控制窗体的显示顺序;第二类问题:窗体之间的对象如何相互引用或操作;第三类问题:如何处理窗体唯一性问题;最后一个问题:如何合理的关闭窗体或程序。
你的方法在学习中,如果可行的话 我会给分的
///窗体一
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{ Form2 f2 = new Form2(); //把form2的setText事件交给form1的GetText(string text)方法处理。
f2.Test += new Form2.SetText(GetText);
f2.ShowDialog();
}
public void GetText(string text)
{
string value = text;
this.button1.Text = value;
} }/**************************************************************///窗体二
public partial class Form2 : Form
{
//第一种方法就是代理。
public delegate void SetText(string text);
public event SetText Test; public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{ }
private void button1_Click(object sender, EventArgs e)
{
// 第一种方法
if (Test != null)
{
Test(textBox1.Text);
}
this.Close(); }
}