c#怎样在第2个窗体关闭时将数值返回给第一个窗体

来源:互联网 发布:windows优化大师 7.2 编辑:程序博客网 时间:2024/06/06 00:31

参考了

https://zhidao.baidu.com/question/2015149438371115148.html

http://blog.csdn.net/kankankankan2222/article/details/8178872


第一个Form,Form1:

            string value = string.Empty;            using (Form2 frm = new Form2())            {                if (frm.ShowDialog() == DialogResult.OK)                {                    //value就是Form2关闭的时候传出的                    value = frm.OutValue;                }            }            MessageBox.Show(value);

第二个Form2:

    public partial class Form2 : Form    {        public Form2()        {            InitializeComponent();        }        private void Form2_Load(object sender, EventArgs e)        {        }        public string OutValue;        protected override void OnClosing(CancelEventArgs e)        {            base.OnClosing(e);            this.OutValue = "value";        }        private void button1_Click(object sender, EventArgs e)        {            this.DialogResult=DialogResult.OK;            this.Close();        }    }

需要在this.Close()前将DialogResult的值设置为对应的结果

以下是DialogResult推荐的值

    //    // 摘要:    //     指定标识符以指示对话框的返回值。    [ComVisible(true)]    public enum DialogResult    {        //        // 摘要:        //     从对话框返回了 Nothing。这表明有模式对话框继续运行。        None = 0,        //        // 摘要:        //     对话框的返回值是 OK(通常从标签为“确定”的按钮发送)。        OK = 1,        //        // 摘要:        //     对话框的返回值是 Cancel(通常从标签为“取消”的按钮发送)。        Cancel = 2,        //        // 摘要:        //     对话框的返回值是 Abort(通常从标签为“中止”的按钮发送)。        Abort = 3,        //        // 摘要:        //     对话框的返回值是 Retry(通常从标签为“重试”的按钮发送)。        Retry = 4,        //        // 摘要:        //     对话框的返回值是 Ignore(通常从标签为“忽略”的按钮发送)。        Ignore = 5,        //        // 摘要:        //     对话框的返回值是 Yes(通常从标签为“是”的按钮发送)。        Yes = 6,        //        // 摘要:        //     对话框的返回值是 No(通常从标签为“否”的按钮发送)。        No = 7    }

对话框Form已经关闭了,怎么还能调用其函数

其实,当窗体通过ShowDialog方法显示,并通过Close()函数进行关闭时,窗体资源不被释放。

=======================================================

Form.ShowDialog方法  http://msdn.microsoft.com/zh-cn/library/c7ykbedk.aspx


阅读全文
0 0
原创粉丝点击