之前在一个form1中的一个事件里新建了这个form3窗口,代码如下
 private void 游戏规则ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form3 frm3 = new Form3();
            frm3.MdiParent = this;
            frm3.Show();
        }
现在想在form3这个界面的button控件的事件中实现关闭这个窗口,代码如下
private void button1_Click(object sender, EventArgs e)
        {
            Form3 frm3 = new Form3();
            frm3.Close();
        }
为什么调试的时候点这个button,什么反映都没有啊,,,,,

解决方案 »

  1.   

    你关闭时的 frm3不是之前定义的那个了
    是在private void button1_Click(object sender, EventArgs e)里重新定义的
    建议定义一个Form3类型变量 
    把private void 游戏规则ToolStripMenuItem_Click(object sender, EventArgs e) 里的frm3传给这个变量
    关闭时关闭这个变量即可
      

  2.   

    谢谢你哈   昨天后来又试了几次   最后用一个this.Close就关上了  呵呵   我还很初级  那个,,,,你说的那个传frm3传给新变量怎么实现啊
      

  3.   

    就是怎么实现把private void 游戏规则ToolStripMenuItem_Click(object sender, EventArgs e) 里的frm3传给这个Form3型的变量 ,之前frm3是在Form1里定义的,用来打开Form3,所以想在Form3里添加一个button控件,作用是关闭form3,结果写的时候就出错了,错误提示:没有定义的变量frm3,就是不知道怎么把Form1里的frm3传给Form3里用啊,,,,,虽然后来直接用一个this.Close()就好使了  呵呵
      

  4.   

    哦,我感觉也是,没见过人家像我这么问的,呵呵,我在把书上的一个例题游戏用vs做一个窗口程序来实现,就像小游戏那种,不过遇到了一些问题,现在马上要写完了,不过还是遇到了同样的问题,就是不知道怎么实现页面值传递啊,,,,一个Form里的值怎么传给另一个Form里用呢,,,,
    namespace 掷骰子游戏
    {
        public partial class Form6 : Form
        {
            public Form6()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                //此处将Form2里的gamnestatus值传过来,作为while循环的控制变量
            }
        }
    就是不知道怎么传啊,,,,,,,,