我有一个程序,弹出一个窗口输入姓名、性别等,然后对这些数据进行验证,如果正确就返回到主窗口,在主窗口中保存数据。
主窗口中的代码:
FormAddName fa = new FormAddName (); //弹出窗口,输入数据
if (fa.ShowDialog() == DialogResult.OK)
{
this.saveName(fa.Name);
}
在弹出窗口textbox里输入姓名,点击确定Button后判断姓名是不是为空,如果为空则重新输入..
private void buttonOK_Click(object sender, EventArgs e)
{
if ( textBoxName.Text.ToString() == null)
{
textBoxName.Focus();
MessageBox.show("必须输入姓名!! ");
}
}
我的问题是,当点击确定button后,弹出窗口就关闭了,又要重新打开弹出窗口FormAddName进行输入。我没有在弹出窗口中添加close函数啊,为什么会关闭呢,怎么阻止窗口关闭?
主窗口中的代码:
FormAddName fa = new FormAddName (); //弹出窗口,输入数据
if (fa.ShowDialog() == DialogResult.OK)
{
this.saveName(fa.Name);
}
在弹出窗口textbox里输入姓名,点击确定Button后判断姓名是不是为空,如果为空则重新输入..
private void buttonOK_Click(object sender, EventArgs e)
{
if ( textBoxName.Text.ToString() == null)
{
textBoxName.Focus();
MessageBox.show("必须输入姓名!! ");
}
}
我的问题是,当点击确定button后,弹出窗口就关闭了,又要重新打开弹出窗口FormAddName进行输入。我没有在弹出窗口中添加close函数啊,为什么会关闭呢,怎么阻止窗口关闭?
我试过了,如果在弹出窗口中保存数据,弹出窗口关闭时不能及时刷新主窗口的数据,必须要等两三秒钟,真是奇了怪了,所以我只好在主窗口中保存数据, 我用的数据库是Acess。
????
我试过了,如果在弹出窗口中保存数据,弹出窗口关闭时不能及时刷新主窗口的数据,必须要等两三秒钟,真是奇了怪了,所以我只好在主窗口中保存数据, 我用的数据库是Acess。
==============================================
搞明白了,本来无一事,庸人自扰之,是我自己没有重新绑定数据源。
WEBFORM直接保存方便,传过去不太方便地!
如果是的话,那就用窗口的FormClosing事件
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}
这样就想关都关不掉了这样问题就解决了吧……
Form1.AcceptButton = BtnTest;
BtnTest.DialogResult = DialogResult.OK;解决方法: 略......
那个是报错的吧?你的button事件里确定只有一个 if 吗?
FormAddName fa = new FormAddName (); //弹出窗口,输入数据
if (fa.ShowDialog() == DialogResult.OK)
{
MessageBox.Show("test"); //看看if的值是否为真,这句话执行吗?
//is.saveName(fa.Name); //注释掉}
好像要在弹出窗口关闭的时候调用自定义方法刷新主窗口,才能刷新主窗口吧?
你是用timer定时更新数据吗? 还是在关闭窗口的时候调用主窗口的数据刷新函数
if(textBoxName.Text.ToString() == null) 把这段代码改成如下写法,if(textBoxName.Text.ToString() == string.Empty)
改了后上面的代码应该是没有问题,要是还是出错,应该是在其他地方,LZ好好检查下。
把这句fa.ShowDialog() == DialogResult.OK去掉就不关闭了。
这是你完整的buttonOK_Click的事件处理函数吗?