这些日子在做一个WinForm的小工具,开始拿起好久不用的.NET了,C#,VS.2005 确实有好些改进,方便不少,也比之前的2003好用的多,这些就不说了,还是说说我遇到的问题吧。
Mdi窗体上有一个主菜单,设置是自动改变大小的(AutoSize=true),在加载其他子窗体(子窗体打开的时候自动最大化)的时候,子窗体的Icon有时候会显示的不正常(应该显示在菜单的左上角),有时候就会显示成默认(没有设置Icon)Icon 。
后来写了一个静态方法来调用,专门用来调整这个问题,这里拿出来分享一下,如果有什么更简单的方法解决这个问题,希望大家给我留言,^_^.
以下是针对这个问题写的一个类:
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace FormAddition
{
    public class Act
    {
        /// <summary>
        /// 加载子窗体的时候,调整子窗体的Icon显示问题
        /// </summary>
        /// <param name="tobeActive">需要加载的子窗体</param>
        /// <param name="Mdi">主窗体:Mdi窗体</param>
        public static void ActiveFrm(Form tobeActive, Form Mdi)
        {
            for (int i = 0; i < Mdi.MdiChildren.Length; i++)
            {
                if (Mdi.MdiChildren.GetValue(i).Equals(tobeActive))
                {
                    tobeActive.WindowState = FormWindowState.Normal;
                }
            }
            tobeActive.WindowState = FormWindowState.Maximized;
        }

    }
}


在加载显示子窗体的代码之后加上这样一句就可以正常显示了:
//_importing = new frmImporting();
// _importing.MdiParent = this;
// _importing.Tag = this;
// _importing.Show();
Act.ActiveFrm(_importing, this);

就这样,虽然很简单,但也是调试了好久才得出来的结果,呵呵。因为没怎么研读VS.2005的帮助文档,所以如果这个问题让大伙笑话了,也欢迎批评批评啊!

Posted on 2007-04-21 09:14  Alter-it  阅读(684)  评论(0编辑  收藏  举报