在MDI父窗体中显示图片背景

在MDI的Parent窗体中,背景很难看,大家都希望能够有一个好看的背景。可是直接使用窗体的IMAGE属性,或者用PICTUREBOX都不行。为什么呢?在Form中,所谓的MDI是一个容器,比较特殊而已--MdiClient。它就是用来保持MDICHILD窗体的。只有通过修改它的属性才可以修改MDI容器显示出来的效果。这个东东在MSDN上基本没有介绍。但是没有介绍就没有办法使用了吗?看下面。

 1None.gif''定义一个MDI容器
 2None.gif    Private WithEvents cli As Windows.Forms.MdiClient
 3None.gif
 4None.gif    Private bgImage As Image = Image.FromFile(Common.Startpath & "\xxx.xxx" )
 5None.gif
 6None.gif    ''查找MdiClient这个窗体对象
 7ExpandedBlockStart.gifContractedBlock.gif    Private Sub SetMdiClient()Sub SetMdiClient()
 8InBlock.gif        Dim i As Int16 = Me.Controls.Count - 1
 9InBlock.gif        While True
10InBlock.gif            Try
11InBlock.gif                cli = CType(Me.Controls.Item(i), MdiClient)
12InBlock.gif                Exit While
13InBlock.gif            Catch ex As ArgumentOutOfRangeException
14InBlock.gif                Exit While
15InBlock.gif            Catch ex As Exception
16InBlock.gif                i -= 1
17InBlock.gif            End Try
18InBlock.gif        End While
19ExpandedBlockEnd.gif    End Sub

20None.gif
21None.gif    ''重绘对应背景
22ExpandedBlockStart.gifContractedBlock.gif    Private Sub cli_Paint()Sub cli_Paint(ByVal sender As ObjectByVal e As System.Windows.Forms.PaintEventArgs) Handles cli.Paint
23InBlock.gif        e.Graphics.DrawImage(bgImage, 00, cli.Width, cli.Height)
24ExpandedBlockEnd.gif    End Sub

25None.gif
26None.gif    ''在改变窗体大小的时候,进行背景图片的重新绘制
27ExpandedBlockStart.gifContractedBlock.gif    Private Sub cli_Resize()Sub cli_Resize(ByVal sender As ObjectByVal e As System.EventArgs) Handles cli.Resize
28InBlock.gif        cli.Refresh()
29ExpandedBlockEnd.gif    End Sub

30None.gif
31None.gif

        把上面代码拷贝到你的窗体里面,替换那个XXX.XXX文件名,看看是不是达到你要的效果了?不过唯一遗憾的就是重绘的时候屏幕会闪烁。

转载于:https://www.cnblogs.com/maxxxz/archive/2005/08/14/214940.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值