dotNet画MDI主窗体背景

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

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
本人水平有限如有疑问欢迎各位朋友来和我讨论。
如转载请保留全文!

本文关键:dotNet画MDI主窗体背景
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top