MDI子窗体ICON显示问题
2010-04-21 11:47
405 查看
在vs2005多文档设计过程中,被一个小问题给犯难了--MDI子窗体显示最大化后主窗体菜单栏左上角的图标显示不正常。一般情况下,只要设置Form的Icon属性就可以了,但在VS2005 .net设计中确不这样。
创建新工程后,新建两个窗体:MainWindow和MdiChildWnd,并且分别这两个构函数中设置Icon属性。在MainWindow中添加一个菜单项newToolStripMenuItem,点击这个菜单菜既弹出MdiChildWnd子窗体。其中Properties.Resources.App则是在资源中添加的Icon图标(只能是16×16格式)。
Code
//MainWindow.cs
public partial class MainWindow : Form
{
public MainWindow()
{
InitializeComponent();
this.Icon = Properties.Resources.App;
this.IsMdiContainer = true;
}
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
MdiChildWnd child = new MdiChildWnd();
child.MdiParent = this;
child.WindowState = FormWindowState.Maximized;//注意:若想打开后立即最大化,只有在子窗体声明时设置,若在MdiChildWnd 的构造函数中或在OnLoad中设置,则不会起到效果。
child.Show();
}
}
MainWindow.cs
//MainWindow.cs
public partial class MainWindow : Form
{
public MainWindow()
{
InitializeComponent();
this.Icon = Properties.Resources.App;
this.IsMdiContainer = true;
}
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
MdiChildWnd child = new MdiChildWnd();
child.MdiParent = this;
child.WindowState = FormWindowState.Maximized;//注意:若想打开后立即最大化,只有在子窗体声明时设置,若在MdiChildWnd 的构造函数中或在OnLoad中设置,则不会起到效果。
child.Show();
}
}
点击运行,则点击菜单项后的结果与我们预想的结果有些差距,如下图1:
图1
图1显示的子窗体最大化后左上角菜单栏没有显示预想的小图标。下面我只来添加一段代码,让应用程序“认真”地把图标显示出来。下面是改写后的主窗体的代码:
MainWindow.cs
//MainWindow.cs
public partial class MainWindow : Form
{
public MainWindow()
{
InitializeComponent();
this.Icon = Properties.Resources.App;
this.IsMdiContainer = true;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
MdiChildWnd child = new MdiChildWnd();
child.MdiParent = this;
child.WindowState = FormWindowState.Maximized;
child.Activated += new EventHandler(child_Activated);//注意:child_Activated是在子窗体第一次被激活时触发的事件。不过,也可以用GotFocus事件,GotFucus事件是在获点焦点时触发。
child.Show();
}
void child_Activated(object sender, EventArgs e)
{
((Form)sender).Icon = Properties.Resources.App;
}
}
加入以上代码后正常运行,如图2
图2
转自:http://hi.baidu.com/mountplorer/blog/item/0118f5306342d210ebc4af9a.html
创建新工程后,新建两个窗体:MainWindow和MdiChildWnd,并且分别这两个构函数中设置Icon属性。在MainWindow中添加一个菜单项newToolStripMenuItem,点击这个菜单菜既弹出MdiChildWnd子窗体。其中Properties.Resources.App则是在资源中添加的Icon图标(只能是16×16格式)。
Code
//MainWindow.cs
public partial class MainWindow : Form
{
public MainWindow()
{
InitializeComponent();
this.Icon = Properties.Resources.App;
this.IsMdiContainer = true;
}
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
MdiChildWnd child = new MdiChildWnd();
child.MdiParent = this;
child.WindowState = FormWindowState.Maximized;//注意:若想打开后立即最大化,只有在子窗体声明时设置,若在MdiChildWnd 的构造函数中或在OnLoad中设置,则不会起到效果。
child.Show();
}
}
MainWindow.cs
//MainWindow.cs
public partial class MainWindow : Form
{
public MainWindow()
{
InitializeComponent();
this.Icon = Properties.Resources.App;
this.IsMdiContainer = true;
}
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
MdiChildWnd child = new MdiChildWnd();
child.MdiParent = this;
child.WindowState = FormWindowState.Maximized;//注意:若想打开后立即最大化,只有在子窗体声明时设置,若在MdiChildWnd 的构造函数中或在OnLoad中设置,则不会起到效果。
child.Show();
}
}
点击运行,则点击菜单项后的结果与我们预想的结果有些差距,如下图1:
图1
图1显示的子窗体最大化后左上角菜单栏没有显示预想的小图标。下面我只来添加一段代码,让应用程序“认真”地把图标显示出来。下面是改写后的主窗体的代码:
MainWindow.cs
//MainWindow.cs
public partial class MainWindow : Form
{
public MainWindow()
{
InitializeComponent();
this.Icon = Properties.Resources.App;
this.IsMdiContainer = true;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
MdiChildWnd child = new MdiChildWnd();
child.MdiParent = this;
child.WindowState = FormWindowState.Maximized;
child.Activated += new EventHandler(child_Activated);//注意:child_Activated是在子窗体第一次被激活时触发的事件。不过,也可以用GotFocus事件,GotFucus事件是在获点焦点时触发。
child.Show();
}
void child_Activated(object sender, EventArgs e)
{
((Form)sender).Icon = Properties.Resources.App;
}
}
加入以上代码后正常运行,如图2
图2
转自:http://hi.baidu.com/mountplorer/blog/item/0118f5306342d210ebc4af9a.html
相关文章推荐
- VS2005中MDI子窗体最大化显示的问题
- 状态栏显示分隔符,form窗体上面的icon不显示的问题
- net MDI 窗体菜单显示子窗体ICON图标,以及合并子窗体菜单问题
- 【VB】MDI子窗体显示(机房问题)
- 机房程序打不开及MDI子窗体显示不全的问题
- VC# 2005中MDI子窗体最大化图标显示问题
- 机房收费系统问题(二)——MDI子窗体不显示
- 机房收费系统问题(一)MDI子窗体不显示
- JS窗口问题处理:使弹出窗口保持前端显示的几种方法,及window窗体对象open()和showModalDialog()用法
- Android ActionBar上不显示icon的问题
- C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)
- 关于Android ActionBar上不显示icon的问题
- Windows7下相似窗体最小化在任务栏合并后显示TODO:<文件说明>的问题
- 模态窗体弹出显示运行时间出问题
- 单例模式——解决MDI子窗体实例化的问题
- python(py2exe)打包成exe执行文件,vista/win7下icon图标显示问题的解决方案
- 关于图片在窗体显示后,无法更新或删除的问题
- 今天把以前解决的MDI子窗体,多次打开同一窗体代码共享一下.逻辑不够完善但是解决了问题
- 机房收费系统-- MDI子窗体显示技巧
- C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)