namespace csglTest
{
public partial class Form2 : Form
{
bool tag = false;
public Form2()
{
InitializeComponent();
if(tag == true)
{
mailList = Form2.GetMailList();
}
}
private void button1_Click(object sender, EventArgs e)
{
tag = true;
return;
.....
}
}
}
我想把button1_Click事件中的tag返回到public Form2()里的if语句里,为什么上面这么做不行啊??...
另外因为return后面还有语句,我想返回tag后继续运行return后面的语句....请问怎么做??
说白了就是:怎么在button1点击事件后运行 mailList = Form2.GetMailList();
(程序要求mailList = Form2.GetMailList(); 不能拉到事件处理中)
{
public partial class Form2 : Form
{
bool tag = false;
public Form2()
{
InitializeComponent();
if(tag == true)
{
mailList = Form2.GetMailList();
}
}
private void button1_Click(object sender, EventArgs e)
{
tag = true;
return;
.....
}
}
}
我想把button1_Click事件中的tag返回到public Form2()里的if语句里,为什么上面这么做不行啊??...
另外因为return后面还有语句,我想返回tag后继续运行return后面的语句....请问怎么做??
说白了就是:怎么在button1点击事件后运行 mailList = Form2.GetMailList();
(程序要求mailList = Form2.GetMailList(); 不能拉到事件处理中)
你在button1_click赋值之后,不会再进Form2()了
{
InitializeComponent();
button1_Click(null,null);
if(tag == true)
{
mailList = Form2.GetMailList();
}
}
怪我没说清楚,button1_Click事件处理里还以OpenFileDialog类建了个dlg,
按你这样写一运行就弹出文件对话框了...
那么我把我的事件描述下,你看看该怎么设计才好??一个form界面上面有个button,点击button,产生一个文件对话框,选中文件点击OK,让Form调用GetMailList()方法
{
public partial class Form2 : Form
{
bool tag = false; //初始化为false
public Form2()
{
InitializeComponent();
if(tag == true)//这是一个永假式,下面的代码永远不会被执行,
{
mailList = Form2.GetMailList();
}
}
private void button1_Click(object sender, EventArgs e)
{
tag = true; //您这里可以执行没有问题,
return;
.....
}
}
}
改成以下可能会更好:namespace csglTest
{
public class MailListEventArgs:EventArgs
{
private bool m_Invoked=false;
public MailListEventArgs(bool isInvoked)
{
m_Invoked=isInvoked;
}public bool InvokedMailList
{
return m_Invoked;
}
}
public partial class Form2 : Form
{
public event EventHandler<MailListEventArgs> InvokeGetMailList;
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OnInvokeGetMailList(new MailListEventArgs(true));
} protected virtual void OnInvokeGetMailList(MailListEventArgs e)
{
if(e.InvokedMailList)
{
//如果是Form2中的方法,可以在这里调用,如果是窗体外的方法,请订阅事件InvokeGetMailList;
EventHandler<MailListEventArgs> eh=InvokGetMailList;
if(eh!=null)
{
eh(this,e);
}
}
}
}
}