关于Mdi窗体的问题

FWSH 2005-07-30 03:35:39
1、当子窗体被激活时,父窗体菜单的相应项变灰;子窗体关闭时,父窗体相应菜单变黑。该如何做法?
2、单击父窗体菜单,子窗体的Text控件该如何显示文本内容。

本人刚学C#,有太多疑问,恳请各位不吝赐教,感激不尽。
...全文
181 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kshatriya 2005-09-22
  • 打赏
  • 举报
回复
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这里来取这个值,这样的话,不需要在窗体里面定义变量,可以降低窗体间的耦合
zkw 2005-09-22
  • 打赏
  • 举报
回复
menuItem1是主菜单的顶层菜单项。
下面是子窗体中的相关代码:

public string TextBox1Text
{
get
{
return this.textBox1.Text;
}
set
{
this.textBox1.Text = value;
}
}
zkw 2005-09-22
  • 打赏
  • 举报
回复
这个是主窗体的相关代码
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;
}
}
}
FWSH 2005-09-22
  • 打赏
  • 举报
回复
我的问题怎么没有会呀?
cyh8188 2005-07-30
  • 打赏
  • 举报
回复
此为窗体间参数传递,具体问题发邮件给我!有详解!cyh8188@tom.com

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧