学习下Window的窗体与控件,UI,我的IDE是VS2012,通过学习这些基本控件,如果以后要用到别的控件,就能够较快上手。
Windows窗体
窗体是应用程序的基本单元,是非常重要的。它实质上是一块白板,通过添加控件可以创建用户界面,并通过代码来操作数据,填充这个白板。
创建窗体
- 启动VS2012
- 文件->新建->项目
- 选择Windows窗体应用程序,名称,路径自己填
- 接下来就可以看到窗体已经建好了
上面的方法是在新建一个程序时加入的窗体,有的程序需要的不止一个窗体,如果需要多个窗体,操作是:选中项目->右键->添加->添加窗体
然后自己选择窗体的名称就行。
更改窗体属性
选中要修改的窗体,打开属性窗口,找到对应的项目,修改就可以了
Windows窗体控件
常用的控件,包括普通控件,对话框,菜单,工具栏,组件等。微软官方文档
控件的基本操作
在设计和修改时,要添加、对齐和定位控件。每种控件都有自己的属性集、方法和时间,以使控件适用于特定用途。
添加或者删除控件
用户界面设计阶段
视图->工具箱,打开工具箱,选择适当的选项卡,找到需要的控件
- 将所需要的控件拖动到窗体的空白处
- 双击所需控件添加事件
删除一个控件:选中该控件然后按Delete键
运行时添加删除控件控件
应用程序在开发过程中的常见任务在窗体上的任何容器控件上添加控件或者移除控件(如Panel或者GroupBox控件,甚至窗体自身)。在运行时,这些控件维护了一个Controls集合,该集合记录在其中放置了哪些控件。
添加主要步骤:
- 创建要添加的控件实例;
- 设置控件的属性;
- 将控件添加到父控件的Controls集合。
private void button1_Click(object sender, EventArgs e)
{
public Button bt = new Button();
bt.Text = "新建的Button";
this.Controls.Add(bt);
}删除主要步骤
- 从事件中移除事件处理程序
- 使用Remove方法,从父控件的Controls集合中删除需要删除的控件
- 调用Dispose方法,释放该控件占用的资源
private void button2_Click(object sender, EventArgs e)
{
if (this.Controls.Contains(bt)) {
this.Click -= new System.EventHandler(this.button1_Click);
this.Controls.Remove(bt);
bt.Dispose();
}
}定位控件
使用窗体设计器拖动或者指定Location属性值来进行定位
- 单击要定位的控件
- 在“属性”窗口中,输入Location属性值(用逗号分隔),以便在窗口内定位该控件
命令控件
Button
用户单击时,调用Click事件处理程序。可以将代码放入Click事件处理程序来执行所选的操作,按钮上的文本包含在Text属性中。
LinkLabel
通过这个控件可以向窗体中添加Web样式的链接。一切可以使用Label的地方都可以使用LinkLabel,还可以将文本的一部分设置为指向某个文件,文件夹或者网页的链接。
NotifyIcon组件
NotifyIcon组件用于显示在后台运行的进程的图标,这些进程大部分时间不显示用户界面。通过单击任务栏状态通知区域的图标来访问杀毒软件或者音乐播放器就是具体的例子
其关键属性有两个,是Icon和Visible。Icon属性出现在状态区域的图标,为使图标出现,Visible必须设置为true
设置选项控件
复选框、单选按钮、等
CheckBox控件和RadioButton控件
CheckBox指示某个特定条件是处于打开状态还是处于关闭状态。他常用为用户提供是/否或者真/假选项,可以成组使用复选框控件以显示多重选项用户可以从中选择一项或者多项。
复选框可以使用简单数据绑定连接到数据库中的元素。多个复选框可以使用GroupBox进行分组
RadioButton为用户提供有两个或者多个互斥选项组成的选项集。当用户选择某单选按钮时,同一组中的其他单选按钮不能同时选定
TrackBar控件
该控件用于大量信息中进行浏览,或者用于以可视的形式调整数字设置。其有两部分:滚动块和刻度线。
关键属性有:
- Vakue
- TickFrequency
- Minimun控件
- Maximum控件
列表选择控件
Windows窗体列表选择控件主要包括ListBox控件,CheckedBox控件和ComboBox控件。
ComboBox控件和ListBox控件
用于在下拉组合框中现实数据,默认情况下,其分两个部分,顶部是允许用户输入列表项的文本框;第二部分是一个列表框,现实一个项列表,用户可以从中选择一项。
用户通过控件的SelectedIndex属性返回一个整数值,该值与选择的列表项相对应。通过改变SelectedIndex可以改变选择项,未选择任何项,SelectedIndex将返回-1。SelectedItem和SelectedIndex类似,但是它返回选中项,一般情况为一个字符串。
增加删除项,使用Add,Insert,Clear,Remove等方法。
ListBox控件和Combo控件类似
CheckedListBox控件
在ListBox控件上增加了列表项旁边显示复选标记
TreeView控件
该控件可以为用户显示节点层次结构,就像Windows资源管理器一样,还可以展开和折叠。
编辑文本控件
- TextBox控件
- RichTextBox控件
- MaskedTextBox控件
显示信息控件
- Label
- StatusStrip
- ProgressBar
日期选择控件
- DateTimePicker
- MonthCalendar
图像控件
- PictureBox
- ImageList
容器组件
- Panel
- GroupBox 可以将多个控件放在一个分组里面
- TabControl 显示多个选项卡
- SplitContainer 由多个可以移动的拆分条分隔的两个面板
- TableLayoutPanel控件
对话框控件
- ColorDialog控件
- FontDialog
- OpenFileDialog
- SaveFileDialog
- FolderBrowserDialog
private void ColorDialog_Click(object sender, EventArgs e)
{
ColorDialog cd = new ColorDialog();
cd.ShowDialog();
ColorDialog.BackColor = cd.Color;
}
private void FontDialog_Click(object sender, EventArgs e)
{
FontDialog fd = new FontDialog();
fd.ShowDialog();
FontDialog.Font = fd.Font;
}
private void OpenFileDialog_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();
}
private void SaveFileDialog_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.ShowDialog();
}
private void FolderBroswerDialogbtn_Click_1(object sender, EventArgs e)
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.ShowDialog();
FolderBroswerDialogbtn.Text = fbd.SelectedPath;
}菜单和工具栏控件
这些控件在设计界面中都很直观,通过简单的观察就可以很好地使用
MenuStrip
使用MenuStrip,可以
- 创建支持高级用户界面和布局的功能的易自定义的常用菜单,例如文本和图像排序和对其,拖放操作和访问菜单命令等
- 支持操作系统的典型外观和行为
- 对多有容器和包含的项进行事件的一致性处理,处理方式与其他控件的事件相同