dotNet画MDI主窗体背景

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

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

本人水平有限如有疑问欢迎各位朋友来和我讨论。

如转载请保留全文!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航