给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,如需转载请自行联系原作者

相关文章
|
API C# Windows
Winform控件优化之无边框窗体及其拖动、调整大小和实现最大最小化关闭功能的自定义标题栏效果
Winform中实现无边框窗体只需要设置FormBorderStyle = FormBorderStyle.None,但是无边框下我们需要保留移动窗体、拖拽调整大小、自定义美观好看的标题栏等...
3380 0
Winform控件优化之无边框窗体及其拖动、调整大小和实现最大最小化关闭功能的自定义标题栏效果
|
4月前
|
开发框架 数据可视化 C#
|
6月前
如何实现更改窗体标题栏的样式
如何实现更改窗体标题栏的样式
53 0
|
6月前
MFC隐藏对话框边框和可拖动
MFC隐藏对话框边框和可拖动
vb如何设置父窗体与子窗体——MDI窗体
vb如何设置父窗体与子窗体——MDI窗体
C#创建无边框可拖动窗口
C#创建无边框可拖动窗口
196 0
C#编程学习19:mdi窗体中子窗体不能重复打开的三种实现方式
C#编程学习19:mdi窗体中子窗体不能重复打开的三种实现方式
C#编程学习19:mdi窗体中子窗体不能重复打开的三种实现方式
|
C#
WPF圆角按钮与触发颜色变化
原文:WPF圆角按钮与触发颜色变化 ...
1585 0