1、当子窗体被激活时,父窗体菜单的相应项变灰;子窗体关闭时,父窗体相应菜单变黑。该如何做法?
2、单击父窗体菜单,子窗体的Text控件该如何显示文本内容。本人刚学C#,有太多疑问,恳请各位不吝赐教,感激不尽。

解决方案 »

  1.   

    此为窗体间参数传递,具体问题发邮件给我!有详解![email protected]
      

  2.   

    这个是主窗体的相关代码
    private void menuItem2_Click(object sender, System.EventArgs e)
    {
    Form2 form2 = new Form2();
    form2.MdiParent = this;
    form2.Show();
    } private void menuItem1_Popup(object sender, System.EventArgs e)
    {
    foreach(Form form in this.MdiChildren)
    {
    if(form is Form2)
    {
    menuItem2.Enabled = false;   //显示子窗体
    menuItem3.Enabled = true;   //更改子窗体中的textbox内容
    return;
    }
    }
    menuItem2.Enabled = true;
    menuItem3.Enabled = false;
    } private void menuItem3_Click(object sender, System.EventArgs e)
    {
    foreach(Form form in this.MdiChildren)
    {
    if(form is Form2)
    {
    ((Form2)form).TextBox1Text = this.textBox1.Text;
    return;
    }
    }
    }
      

  3.   

    menuItem1是主菜单的顶层菜单项。
    下面是子窗体中的相关代码:public string TextBox1Text
    {
    get
    {
    return this.textBox1.Text;
    }
    set
    {
    this.textBox1.Text = value;
    }
    }
      

  4.   

    1.if (frm.ActiveMdiChild.Created)
    {
      // 把主窗体菜单的控件的Enable 的属性设置为false;
    }
      if (frm.ActiveMdiChild.Closing)
    {
    // 把主窗体的Enable属性设置为false;
    }
    2.可以在窗体里面定义一个静态变量以便传递,
    另外建议定义一个结构这样
    public struct TransParameter
    {
    public static string sTransText = string.Empty;
    }然后每当你单击主窗体菜单时,你把菜单选项的Text传给TransParameter.sTransText,
    然后子窗体也到TransParameter.sTransText这里来取这个值,这样的话,不需要在窗体里面定义变量,可以降低窗体间的耦合