魔力随笔.net

随心开发,自为满意

博客园 首页 新随笔 联系 订阅 管理
  4 Posts :: 0 Stories :: 2 Comments :: 0 Trackbacks

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

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

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

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

30
31

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

posted on 2005-08-14 22:48 魔力随笔.net 阅读(520) 评论(2)  编辑 收藏

评论

#1楼  2005-08-15 14:44 怀沙      
根本不要这么麻烦。
有BackgroundImage属性:)
  回复  引用  查看    

#2楼 [楼主] 2005-08-30 20:03 魔力随笔.net      
你试试效果是一样的吗?
backgroudImage的大小不会自动调整。
  回复  引用  查看    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交