当前位置: 代码迷 >> C# >> 这个Text的值如何在窗体间传递交换呢?耗时2周,未解其中缘由,
  详细解决方案

这个Text的值如何在窗体间传递交换呢?耗时2周,未解其中缘由,

热度:324   发布时间:2016-05-05 05:05:25.0
这个Text的值怎么在窗体间传递交换呢?耗时2周,未解其中缘由,急!
一、例题
       设计一个模态对话框。如图。
       
运行后,1、点击显示模态对话框,弹出模态对话框;
                2、在模态对话框里,标题栏输入 文本 ,背景颜色里选择 颜色;点确定后,修改第一个窗体的标题为输入的文本,第一个窗体的背景颜色修改为选择的颜色。

二、我的努力
       第一个窗体:form1里的代码如下:
namespace mModleDialog
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btn_show_Click(object sender, EventArgs e)
        {
            MyModleDialog mmd = new MyModleDialog();
            mmd.ShowDialog ();
            if (mmd.DialogResult == DialogResult.OK)
            {
                this.BackColor = mmd.winColor;
                this.Text = mmd.winTitle;
            }
        }
    }
}

第二个窗体(模态对话框)里的代码如下:
namespace mModleDialog
{
    public partial class MyModleDialog : Form
    {
        public MyModleDialog()
        {
            InitializeComponent();
        }
        public Color winColor;
        public string winTitle;

        private void rb_red_CheckedChanged(object sender, EventArgs e)
        {
            if (rb_red.Checked)
                winColor = Color.Red;
        }

        private void rb_yellow_CheckedChanged(object sender, EventArgs e)
        {
            if (rb_yellow.Checked)
                winColor = Color.Yellow;
        }

        private void rb_blue_CheckedChanged(object sender, EventArgs e)
        {
            if (rb_blue.Checked)
                winColor = Color.Blue;
        }
    }
}

三、我的困惑
1、运行后,我发现:背景颜色实现了修改,可标题始终没有实现修改。这是什么原因?
2、后来,我查看程序,发现在 模态对话框里的文本输入,没有传递到第一个窗体(界面)里,这里该如何传递?

这道例题,为了看懂它,我已经耗时2周,虽然有一些突破,比如颜色实现了修改,可文本标题没有实现修改。我不知道如何处理,希望高手大侠不吝赐教!小虾在此先谢谢了。
整整两个星期啊,希望高手大侠在解答的时候能详细、细致一些,缘由是小虾我基础比较弱,需要一步一步讲清。再次谢谢各位!
------解决思路----------------------
不要使用模态对话框
因为模态对话框会阻塞代码的执行,你的主窗体无法获得焦点,也不再执行代码
除非你关闭弹出的窗体
------解决思路----------------------
dialog公开一个event,该事件提供一个字符串参数,或者你的color也可以一起返回

MyModleDialog .NotifyEvent += 相关处理代码
  相关解决方案