给MDI父窗体添加背景和解决闪烁的问题

简介:

#region 给MDI 父窗体添加背景和解决闪烁的问题
        //1、在Properties/Resources.resx中添加名称为"BackgroundImage"的背景图片

 

//2、在以下位置添加BackgroundNoSplash();

public FrmMain()
        {

          

            InitializeComponent();


            //给MDI 父窗体添加背景和解决闪烁的问题
            BackgroundNoSplash();


        }

 

//以下代码复制到MDI主窗体代码中

        MdiClient mdiClient = new MdiClient();
        
        private void BackgroundNoSplash()
        {
            foreach (Control var in this.Controls)
            {
                if (var is MdiClient)
                {
                    mdiClient = var as MdiClient;
                    break;
                }
            }

            if (mdiClient != null)
            {
                mdiClient.Paint += new PaintEventHandler(OnMdiClientPaint);
                System.Reflection.MethodInfo mi = (mdiClient as Control).GetType().GetMethod("SetStyle", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
                mi.Invoke(mdiClient, new object[] { ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer
                 | ControlStyles.ResizeRedraw, true });

            }
        }

        private void OnMdiClientPaint(object sender, PaintEventArgs e)
         {
            Graphics g = e.Graphics;
             g.DrawImage(Properties.Resources.BackgroundImage, new Rectangle(0, 0, mdiClient.Width, mdiClient.Height));
             string msg = "系统名称+版本号+最后更新日期";
             SizeF size = e.Graphics.MeasureString(msg, this.Font);
             g.DrawString(msg, this.Font, new SolidBrush(Color.White), mdiClient.Width - size.Width, mdiClient.Height - size.Height);

         }

        #endregion



本文转自tiasys博客园博客,原文链接:http://www.cnblogs.com/tiasys/archive/2009/12/02/1615507.html,如需转载请自行联系原作者

相关文章
|
6月前
MFC隐藏对话框边框和可拖动
MFC隐藏对话框边框和可拖动
vb如何设置父窗体与子窗体——MDI窗体
vb如何设置父窗体与子窗体——MDI窗体
C#创建无边框可拖动窗口
C#创建无边框可拖动窗口
199 0
C#编程学习19:mdi窗体中子窗体不能重复打开的三种实现方式
C#编程学习19:mdi窗体中子窗体不能重复打开的三种实现方式
C#编程学习19:mdi窗体中子窗体不能重复打开的三种实现方式
|
C#
WPF 创建无边框的圆角窗口
原文:WPF 创建无边框的圆角窗口 如题所述,在WPF中要创建一个没有边框且为圆角的窗体,有如下几步工作要进行: 第一步:去掉窗体默认样式的边框 首先将窗体的背景设为透明,将允许透明的属性设置为True,...
2704 0
|
前端开发 C# 数据格式
WPF MVVM模式中,通过命令实现窗体拖动、跳转以及显隐控制
原文:WPF MVVM模式中,通过命令实现窗体拖动、跳转以及显隐控制 在WPF中使用MVVM模式,可以让我们的程序实现界面与功能的分离,方便开发,易于维护。但是,很多初学者会在使用MVVM的过程中遇到一个显而易见且无法回避的问题,那就是不同的窗体之间如何跳转?很多人在介绍MVVM的使用时,都没有明显提到该如何解决这一问题,不知是因为觉得太简单了还是其他原因。
2660 0
|
C#
WPF窗体隐藏鼠标光标的方法
原文:WPF窗体隐藏鼠标光标的方法 要引用 System.Windows.Input;   Mouse.OverrideCursor = Cursors.
1779 0
|
C#
WPF圆角按钮与触发颜色变化
原文:WPF圆角按钮与触发颜色变化 ...
1588 0