• 给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

    分享到: 更多
  • 相关阅读:
    OpenGL入门学习
    linux下安装sqlite3
    SQLite 之 C#版 System.Data.SQLite 使用
    .net程序运行流程
    一种简单,轻量,灵活的C#对象转Json对象的方案
    C# 获取Windows系统:Cpu使用率,内存使用率,Mac地址,磁盘使用率
    WPF中选择文件及文件夹
    要想创业成功,千万不能在这十个方面走弯路
    [译]Quartz.Net 框架 教程(中文版)2.2.x 之第三课 更多关于Jobs和JobDetails
    [译]Quartz 框架 教程(中文版)2.2.x 之第二课 Quartz API,Jobs和Triggers简介
  • 原文地址:https://www.cnblogs.com/tiasys/p/1615507.html
Copyright © 2020-2023  润新知