c#怎样在第2个窗体关闭时将数值返回给第一个窗体?
各位大哥。。小弟是个C#新手。。恳请各位帮忙。
我的意思是这样的,主窗体中有个Listview和BUTTON1 ,点BUtton打开第2个窗体,在第2个窗体的TEXTBOX中输入字符,在按第2个窗体的OK BUTTON后,主窗体的Listview中添加刚才输入的名字。。为什么总是不行,我的代码如下。
FORM1:
private ActiveView _activeView = ActiveView.Desktop;
private ListViewItem list1=null;
private enum ActiveView
{
Desktop = 0,
Production = 1,
}
void button1_Click(object sender, EventArgs e)
{
try
{
_activeView = ActiveView.Production;
FORM2_viewProduction = new FORM2();
_viewProduction.Closing += new System.ComponentModel.CancelEventHandler(_onViewClosing);
_viewProduction.Closed += new EventHandler(_viewClosed);
_viewProduction.ShowMe(this.Parent );
_viewProduction.Activate();
}
}
void _viewClosed(object sender, EventArgs e)
{
if (sender is Control)
{
((Control)sender).Dispose();
}
}
private void _onViewClosing(object sender, System.ComponentModel.CancelEventArgs args)
{
try
{
listview1=new ListViewItem(_viewProduction.textbox1.text);
*这里调用总是提示未实例化,如果我在这句前面用 FROM2 viewProduction=NEW FORM2()的话,通常我只能得到我在窗体2中TEXTBOX1的初始值也就是“”得不到我设定的数值
_activeView = ActiveView.Desktop;
}
catch (System.Exception ex)
{
Debug.Assert(false, "_onViewClosing failed with message: ", ex.ToString());
}
}
FORM2:
在BUTTON里面写了个 THIS.CLOSEME() ,如果我在这里重新实例 FORM1 _view=NEW FORM1();
tringtemp3 = new ABB.Robotics.Tps.Windows.Forms.ListViewItem(textBox1.Text );
_view.listView1.Items.Add(stringtemp3);
_VIEW.SHOWME();
这样的话可以显示,但我重新再想多添加几个新的记录到FORM1 的LISTVIEW里面时LISTVIEW1里面始终只有一个记录
到底怎样才能解决这个问题啊。。没全局变量就是麻烦。。各位哥哥帮帮忙吧。。 能给些代码吗。。