form扩展类(fbgMDIform)定制Mdi主窗体背景
一直看系统默认的MdiContainer窗体背景图片的呈现方式不爽,只有简单的填充效果(即图片大小固定,以截取右上角或重复出现的方式填满整个工作区)。
感觉有两种背景呈现效果是比较常用的,其一是在工作区显示一张完整的风景图片做背景,并在窗口大小变化的时候自动调节;其二是在工作区的某处显示一个单独的logo。
鉴于此,写了这个System.Windows.Forms.Form的扩展类。
一、分析和介绍
利用dotNet自带的工具Spy++可以清晰地看到MdiContainer窗体的大致结构:窗体本身、用于包含其他 MDI Child窗体的容器MDIClient、窗体上的其他控件,而我们的背景就是绘制在MDIClient上面的。
所以首先要做的就是定位到MdiContainer窗体的MDIClient,具体代码如下:
private System.Windows.Forms.MdiClient bgMDIClient;
foreach(System.Windows.Forms.Control myControl in this.Controls)
{
if(myControl.GetType().ToString() == "System.Windows.Forms.MdiClient")
{
bgMDIClient = (System.Windows.Forms.MdiClient)myControl;
break;
}
}
找到MDIClient之后就可以通过其BackgroundImage属性来设置背景图片了,当然,具体的呈现风格可以通过一些自定义属性来控制。
窗体加载的时候需要设置bgMDIClient.BackgroundImage,窗体调整大小的时候需要重设bgMDIClient.BackgroundImage,所以应该在窗体的Load和SizeChanged事件中执行相关代码。
下面我列举一下fbgMDIform相对于System.Windows.Forms.Form的自定义属性。
属性名:MDIbg_Type
类 型:enum
介 绍:背景图片呈现风格:File填充,以截取右上角或重复出现的方式填满整个工作区;Draw拉伸,一张图片拉伸后布满工作区;Logo标志,一张图片,其他属性控制具体位置。
属性名:MDIbg_Image
类 型:Image
介 绍:MDIContainer背景图片。
属性名:MDIbg_Align
类 型:enum
介 绍:MDIbg_Image的左右对齐方式,取值为Left、Center、Right,MDIbg_Type设置为Logo时有效。
属性名:MDIbg_Valign
类 型:enum
介 绍:MDIbg_Image的上下对齐方式,取值为Top、Middle、Bottom,MDIbg_Type设置为Logo时有效。
属性名:MDIbg_bgImage
类 型:Image
介 绍:MDIContainer第二背景图片,MDIbg_Type设置为Logo时,此属性对应图片以拉伸的形式在MDIbg_Image的下一层布满工作区,若留空则由背景色替代。
二、使用说明
可以调用编译生成的dll,也可以直接在工程中使用.cs源文件,具体步骤为:
A、调用dll:直接在项目中执行【添加继承的窗体】,设置好窗体名称,点击【打开】,然后【浏览】定位到对应dll,【打开】后名为fbgMDIform的组件会出现在待选列表中,点【确定】返回,接下来设置相关属性即可。
B、使用.cs源文件:把源文件拷到对应项目目录下,执行【添加现有项】将源文件引入项目,然后照A执行,不用在定位到dll了,fbgMDIform直接就在待选列表中了。
注意:若窗体的IsMdiContainer属性为false,相关自定义属性是不起作用的。
三、.cs源代码
见fbgMDIform.cs文件。
没有合适的资源?快使用搜索试试~ 我知道了~
fbgMDIform.rar_定制mdi窗口
共41个文件
cs:6个
exe:5个
resources:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 47 浏览量
2022-09-24
07:24:52
上传
评论
收藏 1.22MB RAR 举报
温馨提示
form扩展类(fbgMDIform)定制Mdi主窗体背景
资源推荐
资源详情
资源评论
收起资源包目录
fbgMDIform.rar (41个子文件)
fbgMDIform
fbgMDIform.csproj 5KB
bin
Release
fbgMDIform.exe 196KB
Debug
fbgMDIform.pdb 36KB
fbgMDIform.vshost.exe.manifest 490B
fbgMDIform.vshost.exe 11KB
fbgMDIform.exe 188KB
Pic
Window.png 18KB
Bg.jpg 110KB
Longhorn M4 Bliss 2.jpg 47KB
Thumbs.db 21KB
Longhorn Stay The Course Bliss.jpg 171KB
Logo.png 3KB
fbgMDIform.resx 6KB
FormMdiTest2.resx 46KB
fbgMDIform.cs 6KB
Readme.txt 3KB
fbgMDIform.sln 904B
obj
Release
temp
fbgMDIform.projdata 8KB
fbgMDIform.exe 196KB
Debug
fbgMDIform.FormMdiTest2.resources 27KB
GenerateResource-ResGen.read.4.tlog 2B
fbgMDIform.pdb 36KB
fbgMDIform.MainForm.resources 6KB
GenerateResource-ResGen.write.1.tlog 1KB
temp
DesignTimeResolveAssemblyReferencesInput.cache 5KB
myControls.fbgMDIform.resources 3KB
fbgMDIform.projdata 8KB
DesignTimeResolveAssemblyReferences.cache 7KB
fbgMDIform.exe 188KB
TempPE
GenerateResource-ResGen.read.1.tlog 914B
fbgMDIform.csproj.FileListAbsolute.txt 1KB
fbgMDIform.FormMdiTest.resources 127KB
FormMdiTest.cs 4KB
FormMdiTest.resx 191KB
FormMdiTest2.cs 4KB
MainModule.cs 343B
AssemblyInfo.cs 2KB
fbgMDIform.suo 20KB
fbgMDIform.csproj.user 2KB
MainForm.cs 6KB
MainForm.resx 10KB
共 41 条
- 1
资源评论
Kinonoyomeo
- 粉丝: 74
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功