Form是WinForm开发中非常重要的一个控件, 本文将包含如何制作一个关于对话框,系统载入提示窗体, 创建类似于QQ提示框以及创建不规则窗体等(文章及相关代码搜集自网络,仅供学习参考,版权属于原作者! ).
1.
Form问题是最基本的问题,因为编写WinApp程序首先接触的对象就是它,因此在论坛中对它而产生的问题也最常见。与Form相关的常见问题大致分为如下的四类问题。
第一类问题:如何控制窗体的显示顺序;
第二类问题:窗体之间的对象如何相互引用或操作;
第三类问题:如何处理窗体唯一性问题;
最后一个问题:如何合理的关闭窗体或程序。
由于在MDI中,子窗体会很多,那么在我以前一篇文章中所提到的方法就有些繁琐了。为了能适应多个子窗体,并对于每个子窗体只保留一个实例,那么我就用一个新的方法来替换,即用反射方法来作处理。
最近看了好多人问这方面的问题,以前我也写过一篇blog,里面说了如何在子线程中控制进度条。但目前大多数环境,需要弹出模式窗口,来显示进度条,那么只需要在原先的基础上稍作修改即可。
最近,看到网上经常会问如何进行窗口跳转,大多数的问题都是牵扯到Login窗口。其实,在Visual Studio 6以来,比较正确的做法,是判断Login窗口的返回值,然后决定是否打开主窗体,那么在C#中也是一样的。
2.
3.
介绍
我以前曾经发表过一片关于使用Win32 APIs的闪屏的文章 。下面这篇文章是介绍同样的过程怎么在.NET framework里实现。
准备图片
选择一个你比较喜欢的用在闪屏的图片。选择你喜欢的一部分去做为显示的部分,用特殊的颜色去填充不显示的部分。
4.
翻译
Lloyd Franklin.著简介
回首以前,我到处寻找Splash Screen的例子,不过我找不到一个符合我的需求的例子。我需要一个简单的、容易复用的、可靠的、安全的——没有线程或子控件;并且,我希望它能够在启动的时候立即出现并停留在屏幕上,在必要的时候消失,当然你可以随时让它复现。我也看到有不少基于.NET下Win Form做的例子,而,这篇文章中,我将使用System.Runtime.InteropServices创建一个继承与控件类的最顶层窗口。我非常喜欢这个方案,因为,我发现它很容易定制。
5.
翻译
Duncan Edwards Jones. 著
简介
本文是一个基于System.ComponentModel.IExtenderProvider 的组件,它允许你列举出Form上所有已经改变过内容的控件,以决定是否需要提示用户保存。
6. (在桌面右底部弹出一个慢慢向上移动的窗口)
7.
[翻译原文地址]:
一直以来,Windows应用程序是基于GDI/User 窗口结构的,而这个结构限制了不少地方。当你尝试使用这个内建的控件集,然后简单迅速地得到了一个非常非常漂亮的应用程序的之后,你就会理解这个限制。 一个无窗体的用户界面并不使用原始的Win32控件。取而代之的是,给屏幕上的每个控件定制图像显示:包括标签、按钮、列表框等等。使用这一种接口以及不是最新的了:大部分很酷的程序都开始“皮肤”,比如WinAmp和MS Media Player。不过skinning只适合一些小的应用程序,它们拥有很少的对话框。如果你正在做一个数据库驱动的程序,你需要一个固定的框架。 那么,来看看Microsoft CRM()应用程序吧,我个人认为,它是最成功的DHTML interfaces()之一。MS CRM 界面非常向 Windows XP,但,同时还有一些其它很酷的特征,如一个导航条、一个适应性非常好的List控件和几个阴影/渐变面板。8.
9
.NET By
简介
这是一个可以自定义扩展功能的打开文件对话框。.NET中有OpenFileDialog打开文件对话框类,但是他不被自定义。而这个控件就是可以让你给.NET的OpenFileDialog类添加自己定义的功能。但是因为OpenFileDialog类被定义为sealed的,所以你不能继承它。
10.
今天在整理大学资料的时候,发现自己参加校内一次软件设计大赛的作品,界面实在是有点丑陋:hehe ,不过还是为自己当时的执着和坚持感到幸福,截图如下,有兴趣的朋友可以留下邮箱,帮小弟优化代码。:angel 见笑了~
11.
12.类似于QQ的弹出窗口
13.
14.类似于QQ截图
15.
16.仿制Outlook窗体风格
17.多语言切换
18.输入对话框
19.定制一个关于对话框
20.自定义绘制窗体