dotNet画MDI主窗体背景

dotNet 画MDI主窗体背景
为MDI父窗体的背景一般无法设置,让人有点遗憾。不过没关系我们可以通过代码未我们加上想要的背景。
首先让我们用dotNet自带的工具Spy++来看一下,MDI父窗体的大致结构。我们可以看到它是由他是两部分组成的(当然前提是你没在MDI窗体上加其他的控件),一个是父窗体本身;一个是用于包含其他MDI Child 窗体的容器MDIClient,我们的背景就是绘制在MDIClient。所以我们首先要找到父窗体的MDIClient,他和放置在父窗体上的,状态栏,按钮栏的等级是一样的,这一点也可以从Syp++中看出。所以我们可以通过如下代码找到它。
      foreach(System.Windows.Forms.Control myControl in this.Controls)//this是MDI父窗体
      {
       if(myControl.GetType().ToString() == "System.Windows.Forms.MdiClient")
       {
        bgMDIClient = (System.Windows.Forms.MdiClient)myControl;
       break;
       }
     }

找到了它我们只要在上面绘制图形就可以,当让我们所期望的绘制图形有两种方式1、平铺 2、拉伸
我们已这两种方式绘制图形。
System.Drawing.Bitmap bgImage  = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile(Application.StartupPath + @"BackGround.jpg");
switch(绘制方式)
   {
    case 平铺:
     System.Drawing.Bitmap myImg = new Bitmap(bgMDIClient.ClientSize.Width,bgMDIClient.ClientSize.Height);
     System.Drawing.Graphics myGraphics = System.Drawing.Graphics.FromImage(myImg);
     myGraphics.DrawImage(bgImage,0,0,myImg.Width+1,myImg.Height+1);
     bgMDIClient.BackgroundImage = myImg;
     myGraphics.Dispose();
     break;
    case 拉伸:
     bgMDIClient.BackgroundImage = tBgBitMap;
     break;
    default:
     bgMDIClient.BackgroundImage = tBgBitMap;
     break;
   }

bbs://www.xamsoft.com/bbs
本人水平有限如有疑问欢迎各位朋友来和我讨论。
如转载请保留全文!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值