我有一个程序,弹出一个窗口输入姓名、性别等,然后对这些数据进行验证,如果正确就返回到主窗口,在主窗口中保存数据。
主窗口中的代码:
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函数啊,为什么会关闭呢,怎么阻止窗口关闭?

解决方案 »

  1.   

    不知各位大虾是在弹出窗口中保存数据,还是在主窗口中保存数据的。
    我试过了,如果在弹出窗口中保存数据,弹出窗口关闭时不能及时刷新主窗口的数据,必须要等两三秒钟,真是奇了怪了,所以我只好在主窗口中保存数据, 我用的数据库是Acess。
      

  2.   

    textBoxName.Text.ToString() == null
    ????
      

  3.   

    cjcgy:是要写成 if ( textBoxName.Text.ToString() == "") 吗??
      

  4.   

    不知各位大虾是在弹出窗口中保存数据,还是在主窗口中保存数据的。 
    我试过了,如果在弹出窗口中保存数据,弹出窗口关闭时不能及时刷新主窗口的数据,必须要等两三秒钟,真是奇了怪了,所以我只好在主窗口中保存数据, 我用的数据库是Acess。
    ==============================================
    搞明白了,本来无一事,庸人自扰之,是我自己没有重新绑定数据源。
      

  5.   

    不知各位大虾是在弹出窗口中保存数据,还是在主窗口中保存数据的。 如果是WINFORM估计都成吧,
    WEBFORM直接保存方便,传过去不太方便地!
      

  6.   

    而且Text属性本来就是string。再to一次没有意义。
      

  7.   

    我想问的问题是:我没有在弹出窗口中添加close函数啊,为什么会关闭呢,怎么阻止窗口关闭? 请老鸟们帮帮忙 
      

  8.   

    可能是你没有把ButtonOK的DialogResult属性设置为OK,如果设置了DialogResult属性则弹出窗口就会关闭! 怎么让它不关闭呢?
      

  9.   

    我想问的问题是:我没有在弹出窗口中添加close函数啊,为什么会关闭呢,怎么阻止窗口关闭? 请老鸟们帮帮忙 是点了那么红叉叉也不能关闭吗?
    如果是的话,那就用窗口的FormClosing事件
            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                    e.Cancel = true;
            }
    这样就想关都关不掉了这样问题就解决了吧……
      

  10.   

    如果你做了以下设定的话,只要一按回车键或是按一下BtnTest,对话框模式启动的窗口就会关闭.
    Form1.AcceptButton = BtnTest;
    BtnTest.DialogResult = DialogResult.OK;解决方法: 略......
      

  11.   

    点红叉叉关闭?
       那个是报错的吧?你的button事件里确定只有一个 if 吗?
      

  12.   


    FormAddName fa = new FormAddName ();  //弹出窗口,输入数据 
    if (fa.ShowDialog() == DialogResult.OK) 

       MessageBox.Show("test");  //看看if的值是否为真,这句话执行吗?
    //is.saveName(fa.Name); //注释掉} 
      

  13.   

    在弹出窗口保存数据到主窗口
    好像要在弹出窗口关闭的时候调用自定义方法刷新主窗口,才能刷新主窗口吧?
       你是用timer定时更新数据吗? 还是在关闭窗口的时候调用主窗口的数据刷新函数
      

  14.   


    if(textBoxName.Text.ToString() == null) 把这段代码改成如下写法,if(textBoxName.Text.ToString() == string.Empty) 
    改了后上面的代码应该是没有问题,要是还是出错,应该是在其他地方,LZ好好检查下。
      

  15.   

    不好意思,应该是if(textBoxName.Text.Trim() == string.Empty) 
      

  16.   


    把这句fa.ShowDialog() == DialogResult.OK去掉就不关闭了。
      

  17.   


    这是你完整的buttonOK_Click的事件处理函数吗?
      

  18.   

    把这句去掉this.DialogResult = DialogResult.OK;就不关闭了。