【沧海拾昧】C# .Net 基本控件介绍

  • Post author:
  • Post category:其他



#C0201




沧海茫茫千钟粟,且拾吾昧一微尘



——《沧海拾昧集》@CuPhoenix




【阅前敬告】


沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系


如有问题必是本集记录有谬,切勿深究



【 写在前面 】


本文是对C# .Net中部分内容的摘录和使用体会,了解更多详细信息建议移步微软官方MSDN网站:

【MSDN传送门】



目录


索引:MDSN分类传送门


一、Control(控件的基类)


二、BackgroundWorker(异步多线程处理)


三、BindingSource(简化绑定的数据源)


四、Button(按钮)


五、CheckBox(复选框)


六、CheckedListBox(可复选列表框)


七、ColorDialog(调色板对话框)


八、ComboBox(下拉列表)


九、ContextMenuStrip(右键菜单)


十、DataGridView(数据表格)


十一、DateTimePicker(日期时间选择菜单)


十二、DomainUpDown(上下翻动的文字显示框)


十三、ErrorProvider(非干扰的错误提示)


十四、FileSystemWatcher(文件更改的监控)


十五、FlowLayoutPanel(流方向布局)


十六、FolderBrowserDialog(文件夹选择窗口)


十七、FontDialog(字体选择对话框)


十八、GroupBox(控件分组)


十九、HelpProvider(帮助页面)


二十、HScrollBar 和 VScrollBar(滚动条)


二十一、Label(文字)


二十二、LinkLabel(允许超链接的文字)


二十三、ListBox(列表框)


二十四、ListView(带图标的列表)


二十五、MaskedTextBox(带格式校验的输入文本框)


二十六、MenuStrip(菜单)


二十七、MonthCalendar(日历&日期选择)


二十八、NotifyIcon(通知栏图标)


二十九、NumericUpDown(上下翻动的数字显示框)


三十、OpenFileDialog(打开文件对话框)


三十一、PageSetupDialog(页面设置对话框)


三十二、Panel(面板)


三十三、PictureBox(图片)


三十四、PrintDialog(打印设置对话框)


三十五、PrintDocument(文档打印设置)


三十六、PrintPreviewControl(自定义打印预览的基类)


三十七、PrintPreviewDialog(打印预览对话框)


三十八、Process(进程管理)


三十九、ProgressBar(进度指示条)


四十、PropertyGrid(显示对象属性)


四十一、RadioButton(单选框)


四十二、RichTextBox(富文本框)


四十三、SaveFileDialog(保存对话框)


四十四、SplitContainer(拆分成大小可调的两个面板)


四十五、StatusStrip (状态显示)


四十六、TabControl (选项卡)


四十七、TableLayoutPanel (网格布局显示)


四十八、TextBox (输入文本)


四十九、Timer (定时器)


五十、ToolStrip (通用组合框架的基类)


五十一、ToolStripContainer(提供悬浮工具栏和可拖拽的工具栏)


五十二、ToolTip(解释控件用的提示信息)


五十三、TrackBar(滑块)


五十四、TreeView(树状层次结构)


索引:MDSN分类传送门


功能


控件名


描述


数据显示


DataGridView

控件



DataGridView

控件提供用于显示数据的可自定义表。 该

DataGridView

类允许自定义单元格、行、列和边框。 注意:

DataGridView

控件提供了

DataGrid

控件中缺少的许多基本功能和高级功能。 有关详细信息,请参阅

Windows 窗体 DataGridView 控件与 DataGrid 控件之间的区别


数据绑定和导航


BindingSource

组件

通过提供货币管理、更改通知和其他服务,简化了将窗体上的控件绑定到数据的过程。


BindingNavigator

控件

提供工具栏类型的界面,用于导航和操作窗体上的数据。


文本编辑


TextBox

控件

显示设计时输入的文本,用户可以在运行时编辑此文本,或者通过编程来更改此文本。


RichTextBox

控件

允许以纯文本或富文本格式 (RTF) 显示文本。


MaskedTextBox

控件

约束用户输入的格式


信息显示


(只读)


Label

控件

显示用户无法直接编辑的文本。


LinkLabel

控件

将文本显示为 Web 样式的链接,并在用户单击特殊文本时触发事件。 通常文本是指向另一个窗口或网站的链接。


StatusStrip

控件

使用框架区域显示有关应用程序当前状态的信息,通常位于父窗体的底部。


ProgressBar

控件

向用户显示操作的当前进度。


网页显示


WebBrowser

控件

使用户能够在你的窗体中导航网页。


从列表中选择


CheckedListBox

控件

显示一个可滚动的项列表,每个项都带有一个复选框。


ComboBox

控件

显示项的下拉列表。


DomainUpDown

控件

显示用户可以使用向上和向下按钮滚动浏览的文本项列表。


ListBox

控件

显示文本和图形项(图标)的列表。


ListView

控件

以四种不同视图中的一种显示项。 视图包括纯文本、带有小图标的文本、带有大图标的文本和详细信息视图。


NumericUpDown

控件

显示用户可以使用向上和向下按钮滚动浏览的数字列表。


TreeView

控件

显示节点对象的分层集合,这些对象可以由带有可选复选框或图标的文本组成。


图形显示


PictureBox

控件

在框架中显示图形文件,例如位图和图标。


图形存储


ImageList

控件

用作映像的存储库。

ImageList

控件及其包含的映像可以从一个应用程序重用到下一个应用程序。


值设置


CheckBox

控件

显示一个复选框和文本标签。 通常用于设置选项。


CheckedListBox

控件

显示一个可滚动的项列表,每个项都带有一个复选框。


RadioButton

控件

显示可打开或关闭的按钮。


TrackBar

控件

允许用户通过沿刻度移动“拇指”来设置刻度上的值。


日期设置


DateTimePicker

控件

显示图形日历以允许用户选择日期或时间。


MonthCalendar

控件

显示图形日历,允许用户选择日期范围。


对话框


ColorDialog

控件

显示颜色选取器对话框,允许用户设置界面元素的颜色。


FontDialog

控件

显示一个对话框,允许用户设置字体及其属性。


OpenFileDialog

控件

显示一个对话框,允许用户导航到某个文件并选择该文件。


PrintDialog

控件

显示一个对话框,允许用户选择打印机并设置其属性。


PrintPreviewDialog

控件

显示一个对话框,其中显示控件

PrintDocument

组件在打印时的显示方式。


FolderBrowserDialog

控件

显示一个对话框,允许用户浏览、创建和最终选择文件夹


SaveFileDialog

控件

显示一个对话框,允许用户保存文件。


菜单控件


MenuStrip

控件

创建自定义菜单。 注意:

MenuStrip

旨在替换

MainMenu

控件。


ContextMenuStrip

控件

创建自定义上下文菜单。 注意:

ContextMenuStrip

旨在替换

ContextMenu

控件。


命令


Button

控件

启动、停止或中断进程。


LinkLabel

控件

将文本显示为 Web 样式的链接,并在用户单击特殊文本时触发事件。 通常文本是指向另一个窗口或网站的链接。


NotifyIcon

控件

在任务栏的状态通知区域显示一个图标,代表在后台运行的应用程序。


ToolStrip

控件

创建工具栏,这些工具栏可以有 Microsoft Windows XP、Microsoft Office、Microsoft Internet Explorer 或自定义外观,可以有主题,也可以没有主题,并且支持溢出和运行时项重新排序。 注意:

ToolStrip

控件旨在替换

ToolBar

控件。


用户帮助


HelpProvider

组件

为控件提供弹出帮助或联机帮助。


ToolTip

组件

提供一个弹出窗口,该窗口在用户将指针悬停在一个控件上时显示有关该控件用途的简短说明。


其他控件


Panel

控件

在未标记的可滚动框架上对一组控件进行分组。


GroupBox

控件

在已标记的不可滚动框架上对一组控件(如单选按钮)进行分组。


TabControl

控件

提供一个选项卡式页面,用于有效地组织和访问分组对象。


SplitContainer

控件

提供由可移动条隔开的两个面板。 注意:

SplitContainer

控件旨在替换

Splitter

控件。


TableLayoutPanel

控件

表示一个面板,它可以在一个由行和列组成的网格中对其内容进行动态布局。


FlowLayoutPanel

控件

表示以水平或垂直方式动态布置其内容的面板。


音频


SoundPlayer

控件

播放 .wav 格式的声音文件。 可以异步加载或播放声音。


一、Control(控件的基类)


  • 继承、派生与实现

继承:Object → MarshalByRefObject → Component → Control

派生:

【MSDN传送门】

// Control 的派生
System.Windows.Forms.AxHost
System.Windows.Forms.ButtonBase
System.Windows.Forms.DataGrid
System.Windows.Forms.DataGridView
System.Windows.Forms.DataVisualization.Charting.Chart
System.Windows.Forms.DateTimePicker
System.Windows.Forms.GroupBox
System.Windows.Forms.Integration.ElementHost
System.Windows.Forms.Label
System.Windows.Forms.ListControl
System.Windows.Forms.ListView
System.Windows.Forms.MdiClient
System.Windows.Forms.MonthCalendar
System.Windows.Forms.PictureBox
System.Windows.Forms.PrintPreviewControl
System.Windows.Forms.ProgressBar
System.Windows.Forms.ScrollableControl
System.Windows.Forms.ScrollBar
System.Windows.Forms.Splitter
System.Windows.Forms.StatusBar
System.Windows.Forms.TabControl
System.Windows.Forms.TextBoxBase
System.Windows.Forms.ToolBar
System.Windows.Forms.TrackBar
System.Windows.Forms.TreeView
System.Windows.Forms.WebBrowserBase

实现:ISynchronizeInvoke,IWin32Window,IComponent,IDisposable,IBindableComponent,IDropTarget


  • 基本介绍

控件是带有

可视化表示形式

的组件。

Control是定义所有控件的基类。


  • 部分属性

public virtual bool AllowDrop { get; set; }
public virtual System.Windows.Forms.AnchorStyles Anchor { get; set; }
/*
        Anchor 枚举的取值为(支持其成员值按位组合): 
            0 - None - 该控件未锚定到其容器的任何边缘
            1 - Top - 该控件锚定到其容器的上边缘
            2 - Bottom - 该控件锚定到其容器的下边缘
            4 - Left - 该控件锚定到其容器的左边缘
            8 - Right - 该控件锚定到其容器的右边缘
*/
public virtual System.Drawing.Color BackColor { get; set; }
public virtual System.Drawing.Image BackgroundImage { get; set; }
public virtual System.Windows.Forms.ImageLayout BackgroundImageLayout { get; set; }
/*
        ImageLayout 枚举的取值为: 
            0 - None - 图像沿控件的矩形工作区顶部左对齐
            1 - Tile - 图像沿控件的矩形工作区平铺
            2 - Center - 图像在控件的矩形工作区中居中显示
            3 - Stretch - 图像沿控件的矩形工作区拉伸
            4 - Zoom - 图像在控件的矩形工作区中放大
*/
public int Bottom { get; }
public System.Drawing.Rectangle Bounds { get; set; }
protected override bool CanRaiseEvents { get; }
public bool CanSelect { get; }
public bool Created { get; }

1、AllowDrop:获取或设置一个值,该值指示控件是否可以接受用户拖放到它上面的数据(默认为false);

2、Anchor:获取或设置控件绑定到的容器的边缘并确定控件如何随其父级一起调整大小(默认值是Top和Left);

3、BackColor:获取或设置控件的背景色;

4、BackgroundImage:获取或设置在控件中显示的背景图像;

5、BackgroundImageLayout:获取或设置在 ImageLayout 枚举中定义的背景图像布局;

6、Bottom:获取控件上边缘与其容器工作区的上边缘之间的距离(以像素为单位);

7、Bounds:获取或设置控件(包括其非工作区元素)相对于其父控件的大小和位置(以像素为单位);

8、CanRaiseEvents:确定是否可以在控件上引发事件;

9、CanSelect:获取一个值,该值指示是否可以选中控件;

10、Created:获取一个值,该值指示控件是否已经创建;


  • 事件

BackColorChanged    当 BackColor 属性的值更改时发生。
BackgroundImageChanged    当 BackgroundImage 属性的值更改时发生。
BackgroundImageLayoutChanged    当 BackgroundImageLayout 属性更改时发生。
BindingContextChanged    当 BindingContext 属性的值更改时发生。
CausesValidationChanged    当 CausesValidation 属性的值更改时发生。
ChangeUICues    焦点或键盘用户界面 (UI) 提示更改时发生。
Click    在单击控件时发生。
ClientSizeChanged    当 ClientSize 属性的值更改时发生。
ContextMenuStripChanged    当 ContextMenuStrip 属性的值更改时发生。
ControlAdded    在将新控件添加到 Control.ControlCollection 时发生。
ControlRemoved    在从 Control.ControlCollection 移除控件时发生。
CursorChanged    当 Cursor 属性的值更改时发生。
DataContextChanged    当 DataContext 属性的值更改时发生。
Disposed    在通过调用 Dispose() 方法释放组件时发生。
DockChanged    当 Dock 属性的值更改时发生。
DoubleClick    在双击控件时发生。
DpiChangedAfterParent    当父控件或窗体的 DPI 更改后,以编程方式更改控件的 DPI 设置时发生。
DpiChangedBeforeParent    父控件或窗体的 DPI 更改事件发生前,以编程方式更改控件的 DPI 设置时发生。
DragDrop    拖放操作完成时发生。
DragEnter    在将对象拖入控件的边界时发生。
DragLeave    将对象拖出控件的边界时发生。
DragOver    在将对象拖到控件的边界上发生。
EnabledChanged    在 Enabled 属性值更改后发生。
Enter    进入控件时发生。
FontChanged    在 Font 属性值更改时发生。
ForeColorChanged    在 ForeColor 属性值更改时发生。
GiveFeedback    在执行拖动操作期间发生。
GotFocus    在控件接收焦点时发生。
HandleCreated    在为控件创建句柄时发生。
HandleDestroyed    在控件的句柄处于销毁过程中时发生。
HelpRequested    用户请求控件帮助时发生。
ImeModeChanged    在 ImeMode 属性更改后发生。
Invalidated    控件的显示要求重新绘制时发生。
KeyDown    在控件有焦点的情况下按下键时发生。
KeyPress    在控件有焦点的情况下 字符、空格或退格键时发生。
KeyUp    在控件有焦点的情况下释放键时发生。
Layout    在控件应重新定位其子控件时发生。
Leave    在输入焦点离开控件时发生。
LocationChanged    在 Location 属性值更改后发生。
LostFocus    在控件失去焦点时发生。
MarginChanged    在控件边距更改时发生。
MouseCaptureChanged    当控件失去鼠标捕获时发生。
MouseClick    用鼠标单击控件时发生。
MouseDoubleClick    用鼠标双击控件时发生。
MouseDown    当鼠标指针位于控件上并按下鼠标键时发生。
MouseEnter    在鼠标指针进入控件时发生。
MouseHover    在鼠标指针停放在控件上时发生。
MouseLeave    在鼠标指针离开控件时发生。
MouseMove    在鼠标指针移到控件上时发生。
MouseUp    在鼠标指针在控件上并释放鼠标键时发生。
MouseWheel   在控件有焦点且鼠标轮移动时发生。
Move    在移动控件时发生。
PaddingChanged    在控件空白区更改时发生。
Paint    在重绘控件时发生。
ParentChanged    在 Parent 属性值更改时发生。
PreviewKeyDown    在焦点位于此控件上的情况下,当有按键动作时发生(在 KeyDown 事件之前发生)。
QueryAccessibilityHelp    在 AccessibleObject 为辅助功能应用程序提供帮助时发生。
QueryContinueDrag    在拖放操作期间发生,并且允许拖动源确定是否应取消拖放操作。
RegionChanged    当 Region 属性的值更改时发生。
Resize    在调整控件大小时发生。
RightToLeftChanged    在 RightToLeft 属性值更改时发生。
SizeChanged    在 Size 属性值更改时发生。
StyleChanged    在控件样式更改时发生。
SystemColorsChanged    系统颜色更改时发生。
TabIndexChanged    在 TabIndex 属性值更改时发生。
TabStopChanged   在 TabStop 属性值更改时发生。
TextChanged   在 Text 属性值更改时发生。
Validated    在控件完成验证时发生。
Validating    在控件验证时发生。
VisibleChanged    在 Visible 属性值更改时发生。

二、BackgroundWorker(异步多线程处理)


  • 继承

继承:Object → MarshalByRefObject → Component → BackgroundWorker


  • 基本介绍

BackgroundWorker是用来

执行多线程任务

的控件,它允许编程者在一个单独的线程上执行一些操作。

例如:下载、文件复制、数据库事务等耗时的操作在长时间运行时可能会导致UI始终处于停止响应状态。将耗时长的任务使用另一个线程进行异步处理,可以避免UI停止响应的问题。


  • 属性

public bool CancellationPending { get; }
public bool IsBusy { get; }
public bool WorkerReportsProgress { get; set; }
public bool WorkerSupportsCancellation { get; set; }


1、CancellationPending:

获取一个值,指示应用程序是否已请求取消后台操作。已取消返回true,否则为false(默认为false);


2、IsBusy:

获取一个值,指示BackgroundWorker是否正在运行异步操作。正在异步操作返回true,否则为false;


3、WorkerReportsProgress:

获取或设置一个值,该值指示BackgroundWorker能否报告进度更新。支持为true,否则为false(默认为false);


4、WorkerSupportsCancellation:

获取或设置一个值,该值指示BackgroundWorker是否支持异步取消。支持为true,否则为false(默认为false);


  • 方法

public void CancelAsync ();
protected virtual void OnDoWork (System.ComponentModel.DoWorkEventArgs e);
protected virtual void OnProgressChanged (System.ComponentModel.ProgressChangedEventArgs e);
protected virtual void OnRunWorkerCompleted (System.ComponentModel.RunWorkerCompletedEventArgs e);

public void ReportProgress (int percentProgress);
public void ReportProgress (int percentProgress, object userState);
/*
    参数说明:
        (int)percentProgress - 已完成的后台操作所占的百分比,范围从 0% 到 100%
        (object)userState - 指示用户状态的唯一Object
*/

public void RunWorkerAsync ();
public void RunWorkerAsync (object argument);
/*
    参数说明:
        (object)argument - 要在DoWork事件处理程序中执行的后台操作使用的参数
*/


1、CancelAsync:

请求取消挂起的后台操作;


2、OnDoWork:

引发DoWork事件;


3、OnProgressChanged:

引发ProgressChanged事件;


4、OnRunWorkerCompleted:

引发RunWorkerCompleted事件;


5、ReportProgress:

引发ProgressChanged事件;


6、RunWorkerAsync:

开始执行后台操作,引发DoWork事件;


  • 事件

public event System.ComponentModel.DoWorkEventHandler DoWork;
public event System.ComponentModel.ProgressChangedEventHandler ProgressChanged;
public event System.ComponentModel.RunWorkerCompletedEventHandler RunWorkerCompleted;


1、DoWork:

该事件用于编写线程的主要操作;


2、ProgressChanged:

该事件用于向用户报告异步操作的进度;


3、RunWorkerCompleted:

该事件在后台操作已完成、被取消或引发异常时发生;

三、BindingSource(简化绑定的数据源)


  • 继承与实现

继承:Object → MarshalByRefObject → Component → BindingSource

实现:ICollection,IEnumerable,IList,IBindingList,IBindingListView,ICancelAddNew, ISupportInitialize,ISupportInitializeNotification,ITypedList,ICurrencyManagerProvider


  • 基本介绍

BindingSource有两个用法:


其一,可以简化窗体控件与复杂数据源(如数据库)的绑定流程

,该控件将作为一个间接层(即将数据源与BindingSource绑定,再将BindingSource和窗体上的对应控件绑定);


其二,可以充当数据源

,通过Add方法向BindingSource中添加数据可以创建一个该类型的列表。


  • 部分属性

public virtual bool AllowEdit { get; }
public virtual bool AllowNew { get; set; }
public virtual bool AllowRemove { get; }
public virtual int Count { get; }
public object Current { get; }
public virtual string Filter { get; set; }
public virtual bool IsFixedSize { get; }
public virtual bool IsSorted { get; }
public virtual object this[int index] { get; set; }
public System.Collections.IList List { get; }
public string Sort { get; set; }
public virtual bool SupportsFiltering { get; }
public virtual bool SupportsSorting { get; }


1、AllowEdit:

获取一个值,该值指示是否可以编辑基础列表中的项;


2、AllowNew:

获取或设置一个值,该值指示是否可以使用AddNew()方法向列表中添加项;


3、AllowRemove:

获取一个值,它指示是否可从基础列表中移除项;


4、Count:

获取在的基础列表中项的总数;


5、Current:

获取列表中的当前项;


6、Filter:

获取或设置用于筛选查看哪些行的表达式;


7、IsFixedSize:

获取一个值,该值指示基础列表是否具有固定大小;


8、IsSorted:

获取一个值,该值指示是否可以对基础列表中的项排序,若允许且列表已排序,值为true;


9、Item[]:

获取或设置指定索引处的列表元素;


10、List:

获取连接器绑定到的列表;


11、Sort:

获取或设置用于排序的列名称以及用于查看数据源中的行的排序顺序,这个值是一个区分大小写的字符串,它包含列名,后跟“ASC”(升序)或“DESC”(降序)。 默认值为 null;


12、SupportsFiltering:

获取一个值,该值指示数据源是否支持筛选;


13、SupportsSorting:

获取一个值,它指示数据源是否支持排序;


  • 部分方法

public virtual int Add (object value);
/*
    参数说明:
        (object)value - 添加到内部列表中的 Object
*/
public virtual object AddNew ();
public virtual void ApplySort (System.ComponentModel.PropertyDescriptor property, System.ComponentModel.ListSortDirection sort);
public virtual void ApplySort (System.ComponentModel.ListSortDescriptionCollection sorts);
/*
    [2个重载]
    参数说明:
        (PropertyDescriptor)property - 描述作为数据源排序依据的属性
        (ListSortDirection)sort - 一个 ListSortDirection 枚举,指示列表应采取的排序方式
        (ListSortDescriptionCollection)sorts - 包含应用于数据源的排序说明

        ListSortDirection 枚举的取值为: 
            0 - Ascending - 按升序排序
            1 - Descending - 按降序排序
*/
public virtual void Clear ();
public virtual bool Contains (object value);
public virtual void CopyTo (Array arr, int index);
/*
    参数说明:
        (Arrar)arr - 目标数组
        (int)index - 目标数组中开始复制操作处的索引
*/
public virtual int Find (System.ComponentModel.PropertyDescriptor prop, object key);
public int Find (string propertyName, object key);
/*
    [2个重载]
    参数说明:
        (PropertyDescriptor)prop - 要搜索的 PropertyDescriptor
        (object)key - 要匹配的 prop 值
        (string)propertyName - 要搜索的属性的名称
*/

public virtual int IndexOf (object value);
public virtual void Insert (int index, object value);
/*
    参数说明:
        (int)index - 应插入 value 的从零开始的索引
        (object)value - 要插入的 Object。 该值可以为 null 
*/
public void MoveFirst ();
public void MoveLast ();
public void MoveNext ();
public void MovePrevious ();
public virtual void Remove (object value);
public virtual void RemoveAt (int index);
public void RemoveCurrent ();
public void ResetBindings (bool metadataChanged);


1、Add:

将现有项添加到内部列表中;


2、AddNew:

在基础列表中添加一个新项;


3、ApplySort




使用指定的排序说明对数据源进行排序;


4、Clear:

从列表中移除所有元素;


5、Contains:

确定某个对象是否为列表中的项;


6、CopyTo:

将List中的内容复制到指定数组,从指定索引值处开始;


7、Find:

在数据源中查找指定的项;


8、IndexOf:

搜索指定的对象,并返回整个列表中第一个匹配项的索引;


9、Insert:

将一项插入列表中指定的索引处;


10、MoveFirst




移至列表中的第一项;


11、MoveLast:

移至列表中的最后一项;


12、MoveNext:

移至列表中的下一项;


13、MovePrevious:

移至列表中的上一项;


14、Remove:

从列表中移除指定的项;


15、RemoveAt:

移除此列表中指定索引处的项;


16、RemoveCurrent:

从列表中移除当前项;


17、ResetBindings




使绑定到 BindingSource 的控件重新读取列表中的所有项,并刷新这些项的显示值;


  • 部分事件

public event System.ComponentModel.AddingNewEventHandler AddingNew;
public event EventHandler CurrentChanged;
public event EventHandler CurrentItemChanged;
public event System.ComponentModel.ListChangedEventHandler ListChanged;


1、AddingNew:

在将项添加到基础列表之前发生;


2、CurrentChanged:

在当前绑定项更改时发生;


3、CurrentItemChanged:

在 Current 属性的属性值更改后发生;


4、ListChanged:

当基础列表更改或列表中的项更改时发生;

四、Button(按钮)


  • 继承与实现

继承:Object → MarshalByRefObject → Component → Control → ButtonBase → Button

实现:IButtonControl


  • 基本介绍

Button允许用户通过单击、双击等方式来执行某项操作。其中

单击又包括按下和释放两个过程

。 每当用户单击某个按钮时,将会调用 Click 事件处理程序。 在 Click 事件处理程序中放置代码以执行所选的任何操作。

按钮上

显示的文本包含在Text属性

中。 如果文本超出按钮的宽度,将换到下一行。 若控件无法调整文本整体高度,则会对其进行剪裁。

Text属性可以包含一个

访问键

,该键允许用户通过按 ALT 键和访问键来“单击”控件。

文本的外观由Font属性和TextAlign属性控制。

Button 控件还可以使用 Image 和 ImageList 属性显示图像。 有关详细信息,请参阅如何:设置 Windows 窗体控件显示的图像。

Button 控件


  • 部分属性

public System.Windows.Forms.AutoSizeMode AutoSizeMode { get; set; }
/*
    参数说明:
        AutoSizeMode 枚举的取值为: 
            0 - GrowAndShrink - 控件根据它的内容增大或缩小。 不能手动调整该控件的大小
            1 - GrowOnly - 控件可以根据其内容任意增大,但不会缩小至小于它的 Size 属性值。 窗体可以调整大小,但不能缩小到它所包含的任意控件被隐藏。(默认值)
*/
protected override System.Windows.Forms.CreateParams CreateParams { get; }
public virtual System.Windows.Forms.DialogResult DialogResult { get; set; }
/*
    参数说明:
        DialogResult 枚举的取值为: 
            0 - None - 从对话框返回了 Nothing。 这表明有模式对话框继续运行(默认值)
            1 - OK - 对话框的返回值是 OK(通常从标签为“确定”的按钮发送)
            2 - Cancel - 对话框的返回值是 Cancel(通常从标签为“取消”的按钮发送)
            3 - Abort - 对话框的返回值是 Abort(通常从标签为“中止”的按钮发送)
            4 - Retry - 对话框的返回值是 Retry(通常从标签为“重试”的按钮发送)
            5 - Ignore - 对话框的返回值是 Ignore(通常从标签为“忽略”的按钮发送)
            6 - Yes - 对话框的返回值是 Yes(通常从标签为“是”的按钮发送)
            7 - No - 对话框的返回值是 No(通常从标签为“否”的按钮发送)
            10 - TryAgain - 对话框返回值是“重试” (通常从标记为“重试”的按钮发送)
            11 - Continue - 对话框返回值是“继续” (通常从标记为“继续”) 的按钮发送
*/


1、AutoSizeMode:

获取或设置 Button 自己进行自动调整大小的模式;


2、CreateParams:

创建窗口时获取基类的一个 CreateParams;


3、DialogResult:

获取或设置一个值,该值在单击按钮时返回到父窗体;


  • 部分方法

public virtual void NotifyDefault (bool value);


1、NotifyDefault:

通知 Button 是否是默认按钮,以便它能够相应地调整自己的外观;


  • 部分事件

public event EventHandler DoubleClick;
public event System.Windows.Forms.MouseEventHandler MouseDoubleClick;


1、DoubleClick:

当用户双击 Button 控件时发生;


2、MouseDoubleClick:

当用户使用鼠标双击 Button 控件时发生;

五、CheckBox(复选框)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ButtonBase → CheckBox


  • 基本介绍

CheckBox 控件指示特定条件处于打开开始关闭状态。 通常用于向用户显示 Yes/No 或 True/False 选项。 可以使用组中的复选框控件来显示用户可从中选择一个或多选的多个选项。

复选框控件类似于单选按钮控件,其中的每个选项用于指示用户所做的选择。 它们不同之处在于,一次只能选择一个组中的一个单选按钮,但

可以选择任意数量的复选框

可以使用简单的数据绑定将复选框连接到数据库中的元素。 可以

使用 GroupBox 控件对多个复选框进行分组

。 这对于视觉外观和用户界面设计也很有用,因为分组控件可以在窗体设计器上一起移动。

CheckBox 控件具有两个重要属性:Checked 和 CheckState。 Checked 属性返回 true 或 false。 CheckState 属性返回 Checked 或 Unchecked;如果 ThreeState 属性设置为 true,则 CheckState 也可能返回 Indeterminate。 处于不确定状态时,复选框灰显,指示选项不可用。

六、CheckedListBox(可复选列表框)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ListControl → ListBox → CheckedListBox


  • 基本介绍

CheckedListBox 控件扩展 ListBox 控件。 它几乎可以完成ListBox执行的所有操作,还可以在列表中的项旁边显示复选标记。

这两个控件之间的其他区别是CheckListBox仅支持 DrawMode.Normal;并且CheckListBox只能有至多一项被当前选择。 当前选择的项在窗体上突出显示(当前选择与选中的项不是一个意思)。

七、ColorDialog(调色板对话框)


  • 继承

继承:Object → MarshalByRefObject → Component → CommonDialog → ColorDialog


  • 基本介绍

该控件表示一个通用对话框,该对话框显示可用的颜色以及允许用户定义自定义颜色的控件。

对话框中选择的颜色在 Color 属性中返回。 如果将 AllowFullOpen 属性设置为 false,则会禁用“定义自定义颜色”按钮,且用户只能使用调色板中的预定义颜色。 如果将 SolidColorOnly 属性设置为 true,则用户无法选择抖动色。 若要显示对话框,必须调用其 ShowDialog 方法。

ColorDialog 对话框

八、ComboBox(下拉列表)


  • 继承

继承:Object → MarshalByRefObject → Component → CommonDialog → ColorDialog


  • 基本介绍

ComboBox 控件用于在下拉列表组合框中显示数据。 默认情况下,ComboBox 控件显示在两个部分中:顶部部分是一个文本框,使用户可以键入列表项。 第二部分是一个列表框,显示用户可以从中选择的项列表。

SelectedIndex 属性返回对应于所选列表项的索引值。 可以通过更改代码中的 SelectedIndex 值以编程方式更改所选项;列表中的相应项将显示在组合框的文本框部分。 如果未选择任何项,则 SelectedIndex 值为 -1。 如果选择了列表中的第一项,则 SelectedIndex 值为 0。

SelectedItem 属性类似于 SelectedIndex,但返回项本身(通常是字符串值)。 Count 属性反映列表中的项数,并且 Count 属性的值总是比最大的 SelectedIndex 值大 1,因为 SelectedIndex 是从零开始的。

若要在 ComboBox 控件中添加或删除项,请使用 Add、Insert、Clear 或 Remove 方法。 或者,可以使用设计器中的 Items 属性将项添加到列表中。

ComboBox 控件

九、ContextMenuStrip(右键菜单)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl → ToolStrip → ToolStripDropDown → ToolStripDropDownMenu → ContextMenuStrip


  • 基本介绍

快捷菜单,也称为上下文菜单,在用户单击鼠标右键时出现在鼠标位置。 快捷菜单为工作区或鼠标指针位置处的控件提供选项。


  • 使用方法

将右键菜单与窗体或控件相关联,必须将窗体或控件的 ContextMenuStrip 属性设为想要关联的ContextMenuStrip 的名字,然后就可以右键弹出了。

设置 ContextMenuStrip 属性

十、DataGridView(数据表格)

  • 继承

继承:Object → MarshalByRefObject → Component → Control → DataGridView


  • 基本介绍

DataGridView 控件提供一种在可自定义的网格中显示数据的方法。 可以使用 DataGridView 控件来显示少量数据的只读视图,或者可以缩放该控件以显示大型数据集的可编辑视图。

通常将该控件与数据库等表相绑定显示。

DataGridView 控件

十一、DateTimePicker(日期时间选择菜单)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → DateTimePicker


  • 基本介绍

DateTimePicker 控件允许用户从日期或时间列表中选择单个项。 用于表示日期时,它分为两部分显示:以文本表示日期的下拉列表,以及单击列表旁边的向下箭头时显示的网格。

如果希望 DateTimePicker 显示为用于选择或编辑时间(而不是日期)的控件,请将 ShowUpDown 属性设置为 true 并将 Format 属性设置为 Time。

当 ShowCheckBox 属性设置为 true 时,将在控件的选定日期旁边显示一个复选框。 选中复选框后,可以更新所选的日期时间值。 复选框为空时,该值将显示为不可用。

控件的 MaxDate 和 MinDate 属性确定日期和时间范围。 Value 属性包含控件设置的当前日期和时间。

DateTimePicker 控件

十二、DomainUpDown(上下翻动的文字显示框)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl → ContainerControl → UpDownBase → DomainUpDown


  • 基本介绍

DomainUpDown 控件本质上是一个文本框和一对按钮的组合,用于在列表中上下移动。 该控件会显示并设置选择列表中的文本字符串。 用户可以通过单击向上和向下按钮在列表中移动、按向上和向下箭头键或键入与列表中的项匹配的字符串来选择字符串。

若要对列表进行排序,要 Sorted 属性设置为 true。

控件的关键属性为 Items、ReadOnly 和 Wrap。 Items 属性包含其文本值显示在控件中的对象的列表。 如果 ReadOnly 设置为 false,则该控件将自动完成用户键入的文本,并将其与列表中的值进行匹配。 如果 Wrap 设置为 true,则滚动到最后一个项目将转到列表中的第一个项目,反之亦然。 控制的关键方法为 UpButton 和 DownButton。


此控件仅显示文本字符串。 如果需要显示数值的控件,可以用 NumericUpDown 控件。

DomainUpDown

十三、ErrorProvider(非干扰的错误提示)


  • 继承

继承:Object → MarshalByRefObject → Component → ErrorProvider


  • 基本介绍

ErrorProvider 用于验证窗体或控件上的用户输入。 它通常联合用于验证窗体上的用户输入或显示数据集中的错误。

ErrorProvider 在相关控件旁边(如文本框),当用户将鼠标指针置于错误图标上时,将显示错误提示符号和错误消息字符串。


  • 使用方法

将验证某个控件的代码添加到其 Validated 事件,当验证错误时调用 ErrorProvider 控件的SetError 方法。SetError 方法的第一个参数指定要在旁边显示图标的控件。 第二个参数是要显示的错误文本。如对于文本框信息的验证:

protected void textBox1_Validating (object sender, System.ComponentModel.CancelEventArgs e) 
{  
   try
   {  
      int x = Int32.Parse(textBox1.Text);  
      errorProvider1.SetError(textBox1, "");  
   }  
   catch (Exception ex)
   {  
      errorProvider1.SetError(textBox1, "Not an integer value.");  
   }  
}

/*将以下代码放在窗体的构造函数中以注册事件处理程序*/
this.textBox1.Validating += new  
System.ComponentModel.CancelEventHandler(this.textBox1_Validating);

十四、FileSystemWatcher(文件更改的监控)


  • 继承

继承:Object → MarshalByRefObject → Component → FileSystemWatcher


  • 基本介绍

是 .Net Core 的一个控件,可以监控文件夹内是否出现文件更改,并在目录或目录中的文件发生更改时引发事件。

十五、FlowLayoutPanel(流方向布局)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl →

Panel → FlowLayoutPanel


  • 基本介绍

FlowLayoutPanel 控件沿水平或纵排方向排列其内容。 可从一行到下一行,或从一列到下列进行内容换行。 还可以剪切内容,而不是进行换行。

可以通过设置 FlowDirection 属性的值来指定排列方向。 FlowLayoutPanel 控件在从右到左 (RTL) 布局中正确地反转其排列方向。 也可通过设置 WrapContents 属性的值来指定是对 FlowLayoutPanel 控件的内容进行换行还是剪切。

将 AutoSize 属性设置为 true 时,FlowLayoutPanel 控件自动调整根据其内容调整大小。 它还为其子控件提供了 FlowBreak 属性。 将 FlowBreak 属性的值设置为 true 导致 FlowLayoutPanel 控件停止按当前排列方向对控件进行布局,并换行到下一行或下一列。

任何 Windows 窗体控件均可以是 FlowLayoutPanel 控制的子控件(包括 FlowLayoutPanel )。 使用此功能,可以构造在运行时适应窗体尺寸的复杂布局。

十六、FolderBrowserDialog(文件夹选择窗口)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl →

Panel → FlowLayoutPanel


  • 基本介绍

FolderBrowserDialog 组件显示一个对话框,用户可以通过该界面浏览和选择文件夹或创建新文件夹。 该界面是对用于浏览和选择文件的 OpenFileDialog 组件组件的补充。

注意,若要选择文件(而不是文件夹),需要使用 OpenFileDialog 组件。

注意,要使用此类,程序集需要

PathDiscovery

类授予的特权等级(通过

FileIOPermissionAccess

枚举进行设置)。


  • 使用方法

在过程中检查 FolderBrowserDialog 组件的 DialogResult 属性,以确定关闭对话框的方式并获取 FolderBrowserDialog 组件的 SelectedPath 属性值。

如果需要设置将出现在对话框树视图中的顶层文件夹,请设置 RootFolder 属性,该属性采用 Environment.SpecialFolder 枚举的成员。

另外,还可以设置 Description 属性,该属性指定出现在文件夹浏览器树视图顶部的文本字符串。

例如:将选择的文件夹名称随后显示在窗体上的 TextBox 控件中。 最好将文件夹名称置于可编辑区域(例如 TextBox 控件),以便用户能够在出现错误或其他问题时编辑其所选内容。 此示例假定窗体具有 FolderBrowserDialog 组件和 TextBox 控件:

public void ChooseFolder()
{
    if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
    {
        textBox1.Text = folderBrowserDialog1.SelectedPath;
    }
}

十七、FontDialog(字体选择对话框)


  • 继承

继承:Object → MarshalByRefObject → Component → CommonDialog → FontDialog


  • 基本介绍

FontDialog 组件是一个预先配置的对话框,这一标准 Windows“字体”对话框用于公开系统上当前安装的字体。 在基于 Windows 的应用程序中,使用它作为一种替代配置自己对话框的简单字体选择解决方案。

默认情况下,对话框显示“字体”、“字体样式”和“大小”的列表框;“删除线”和“下划线”等效果的复选框;脚本的下拉列表;以及字体将如何显示的示例。若要显示字体对话框,调用 ShowDialog方法。

十八、GroupBox(控件分组)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → GroupBox


  • 基本介绍

GroupBox 控件用于为其他控件提供可识别的分组。 通常,可使用分组框按功能细分窗体。 例如,你可能有一个指定了邮件选项的订单窗体,例如指定使用哪家夜间运营商。 对分组框中的所有选项进行分组可为用户提供逻辑视觉提示。 GroupBox 控件类似于 Panel 控件;但只有 GroupBox 控件才可显示标题,而只有 Panel 控件可以拥有滚动条。

GroupBox 控件

十九、HelpProvider(帮助页面)


  • 继承

继承:Object → MarshalByRefObject → Component → HelpProvider


  • 基本介绍

HelpProvider 组件用于将基于 Windows 的应用程序与 HTML Help 1.x 帮助文件(HTML Help Workshop 生成的 .chm 文件,或 .htm 文件)关联。

二十、HScrollBar 和 VScrollBar(滚动条)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollBar


  • 基本介绍

ScrollBar 控件用于在项的长列表或大量信息中轻松导航,方法是在应用程序或控件中水平或垂直滚动。 滚动条是 Windows 界面的常见元素,因此 ScrollBar 控件通常会与不派生自 ScrollableControl 类的控件一起使用。 同样,许多开发人员在创作自己的用户控件时选择合并 ScrollBar 控件。

HScrollBar(水平)和 VScrollBar(垂直)控件独立于其他控件运行,并具有自己的一组事件、属性和方法。 ScrollBar 控件与附加到文本框、列表框、组合框或 MDI 窗体的内置滚动条不同(TextBox 控件有一个 ScrollBars 属性来显示或隐藏附加到该控件的滚动条)。

ScrollBar 控件使用 Scroll 事件来监视滚动框(有时称为滚动块)沿滚动条的移动。 使用 Scroll 事件可以在拖动滚动条时访问滚动条值。

二十一、Label(文字)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → Label


  • 基本介绍

Label 控件用于显示用户无法编辑的文本或图像。 它们用于标识窗体上的对象,例如,提供对单击某个控件后将执行的操作的说明,或显示响应应用程序中运行时事件或进程的信息。 由于 Label 控件无法接收焦点,因此它还可用于为其他控件创建访问键。

Label 中显示的描述文字包含在 Text 属性中。 TextAlign 属性使你能够设置标签内文本的对齐方式。

二十二、LinkLabel(允许超链接的文字)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → Label → LinkLabel


  • 基本介绍

可以将 LinkLabel 控件用于可使用 Label 控件执行的所有操作;还可以将部分文本设置为指向对象或网页的链接。

二十三、ListBox(列表框)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ListControl → ListBox


  • 基本介绍

ListBox 控件显示一个列表,用户可以从中选择一个或多个项。 如果项总数超过可显示的数量,则会自动向 ListBox 控件添加滚动条。

MultiColumn 属性设置为 true 时,列表框将显示多个列中的项,并显示水平滚动条。 MultiColumn 属性设置为 false 时,列表框将显示单个列中的项,并显示垂直滚动条。

ScrollAlwaysVisible 设置为 true 时,无论项目数多少,都会显示滚动条。 SelectionMode 属性确定一次可以选择多少列表项。

SelectedIndex 属性返回一个整数值,该值对应于列表框中的第一个选定项。 可以通过更改代码中的 SelectedIndex 值以编程方式更改所选项;列表中的相应项将突出显示在 Windows 窗体上。 如果未选择任何项,则 SelectedIndex 值为 -1。 如果选择了列表中的第一项,则 SelectedIndex 值为 0。 选择多个项时,SelectedIndex 值反映列表中第一个显示的选定项。

SelectedItem 属性类似于 SelectedIndex,但返回项本身(通常是字符串值)。 Count 属性反映列表中的项数,并且 Count 属性的值总是比最大的 SelectedIndex 值大 1,因为 SelectedIndex 是从零开始的。

若要在 ListBox 控件中添加或删除项,请使用 Add、Insert、Clear 或 Remove 方法。 或者,可以在设计时使用 Items 属性将项添加到列表中。

二十四、ListView(带图标的列表)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ListView


  • 基本介绍

ListView 控件显示带图标的项列表。可以使用列表视图创建类似 Windows 资源管理器右窗格的用户界面。 该控件有四种视图模式:LargeIcon、SmallIcon、List 和 Details。

二十五、MaskedTextBox(带格式校验的输入文本框)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → TextBoxBase → MaskedTextBox


  • 基本介绍

使用掩码区分正确的和不正确的用户输入。

二十六、MenuStrip(菜单)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl → ToolStrip  → MenuStrip


  • 基本介绍

MenuStrip 控件是在 .NET Framework 版本 2.0 中引入的。 可以通过 MenuStrip 控件,轻松创建菜单,为窗体提供菜单系统。

MenuStrip 控件

二十七、MonthCalendar(日历&日期选择)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → MonthCalendar


  • 基本介绍

MonthCalendar 控件显示直观的图形界面,供用户查看和设置日期信息。 该控件显示一个包含月份编号天数(按一周中的天数排列)的网格。 可通过单击月份标题栏两侧的箭头按钮来选择其他月份。

与类似的 DateTimePicker 控件不同,可使用此控件选择日期范围;不过,可通过 DateTimePicker 控件设置时间和日期。

MonthCalendar 控件的外观高度可配置。 默认情况下,当天的日期显示为圆圈,也显示在网格底部。 可通过将 ShowToday 和 ShowTodayCircle 属性设置为 false 更改此特征。 还可通过将 ShowWeekNumbers 属性设置为 true 向日历添加周数。 通过设置 CalendarDimensions 属性,可以水平和垂直显示多个月。 默认情况下,星期日显示为一周的第一天,但可使用 FirstDayOfWeek 属性指定任何一天。

还可通过将 DateTime 对象添加到 BoldedDates、AnnuallyBoldedDates 和 MonthlyBoldedDates 属性,将某些日期设置为一次性、每年或每月以粗体显示。 有关详细信息,请参阅如何:使用 Windows 窗体 MonthCalendar 控件以粗体显示特定日期。

MonthCalendar 控件的关键属性是 SelectionRange,即在控件中选择的日期范围。 SelectionRange 值不能超过在 MaxSelectionCount 属性中设置的可选择的最大天数。 用户可选择的最早和最晚日期由 MaxDate 和 MinDate 属性确定。

MonthCalendar 控件

二十八、NotifyIcon(通知栏图标)


  • 继承

继承:Object → MarshalByRefObject → Component → NotifyIcon


  • 基本介绍

NotifyIcon 组件通常用于显示在后台运行且大部分时间不显示用户界面的进程的图标。 指定可在通知区域创建图标的组件。 此类不能被继承。

二十九、NumericUpDown(上下翻动的数字显示框)


  • 继承

继承:Object → MarshalByRefObject → Component → ScrollableControl → ContainerControl → UpDownBase → NumericUpDown


  • 基本介绍

NumericUpDown 控件看起来像是一个文本框与一对箭头的组合,用户可单击箭头来调整值。 该控件显示并设置固定数值选项列表中的单个数值。 用户可以通过单击向上和向下箭头、按向上键和向上键或在控件的文本框中键入数字来增加和减少数字。 单击向上键时,数字沿最大值方向增加;单击向下键时,则沿最小值数字移。

与 DomainUpDown 有一定的相似。

NumericUpDown 控件

三十、OpenFileDialog(打开文件对话框)


  • 继承

继承:Object → MarshalByRefObject → Component → CommonDialog → FileDialog → OpenFileDialog


  • 基本介绍

OpenFileDialog 组件是一个预配置的对话框。 它与 Windows 操作系统公开的“打开文件”对话框相同。

在基于 Windows 的应用程序中,使用子组件作为一种替代配置自己对话框的简单文件选择解决方案。 利用标准的 Windows 对话框,你可以创建其基本功能可立即为用户所熟悉的应用程序。 但请注意,使用 OpenFileDialog 组件时,必须编写自己的文件打开逻辑。

使用 ShowDialog 方法可在运行时显示对话框。 可以让用户使用 Multiselect 属性打开多选文件。 此外,可以使用 ShowReadOnly 属性来确定对话框中是否显示只读复选框。

ReadOnlyChecked 属性指示是否选中了只读复选框。 最后,Filter 属性设置当前文件名筛选器字符串,该字符串决定对话框的“文件类型”框中出现的选择内容。

三十一、PageSetupDialog(页面设置对话框)


  • 继承

继承:Object → MarshalByRefObject → Component→ CommonDialog → PageSetupDialog


  • 基本介绍

用于设置在基于 Windows 的应用程序中打印的页面详细信息。 允许用户更改与页面相关的打印设置,包括边距和纸张方向。 此类不能被继承。

PageSetupDialog 控件

三十二、Panel(面板)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl → Panel


  • 基本介绍

Panel 控件用于为其他控件提供可识别的分组。 通常,可使用面板按功能细分窗体。 Panel 控件类似于 GroupBox 控件;但只有 Panel 控件才可具有滚动条,并且只有 GroupBox 控件才显示标题。。

三十三、PictureBox(图片)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl → PictureBox


  • 基本介绍

PictureBox 控件用于以位图、GIF、JPEG、Metafile 或图标格式显示图形。

显示的图片由 Image 属性确定,该属性可在运行时或设计时设置。也可以通过设置 ImageLocation 属性来指定图像,然后使用 Load 方法同步加载图像或使用 LoadAsync 方法异步加载图像。

SizeMode 属性控制图像和控件之间的匹配方式。

三十四、PrintDialog(打印设置对话框)


  • 继承

继承:Object → MarshalByRefObject → Component→ CommonDialog → PrintDialog


  • 基本介绍

PrintDialog 组件是一个预先配置的对话框,可用于在基于 Windows 的应用程序中选择打印机、选择要打印的页以及确定其他与打印相关的设置。。

三十五、PrintDocument(文档打印设置)


  • 继承

继承:Object → MarshalByRefObject → Component → PrintDocument


  • 基本介绍

PrintDocument 组件用于设置描述打印内容的属性,然后打印基于 Windows 的应用程序中的文档。 此组件可与 PrintDialog 组件一起用于命令文档打印的各方面。其作用是从 Windows 窗体应用程序打印时,定义一种可重用的可发送到打印机上的对象。

三十六、PrintPreviewControl(自定义打印预览的基类)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → PrintPreviewControl


  • 基本介绍

PrintPreviewControl用于显示文档打印时的样子。 此控件具有没有按钮或其他用户界面元素,因此通常仅在你想要编写自己的打印预览用户界面时才使用 PrintPreviewControl。 如果你想要标准的用户界面,请使用 PrintPreviewDialog 控件。

三十七、PrintPreviewDialog(打印预览对话框)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl → ContainerControl → Form → PrintPreviewDialog


  • 基本介绍

PrintPreviewDialog 控件是一个预配置的对话框,用于显示文档在打印时的显示方式。 在基于 Windows 的应用程序中,使用它作为一种替代配置自己对话框的简单解决方案。 该控件包含用于打印、放大、显示一页或多页以及关闭对话框的按钮。

三十八、Process(进程管理)


  • 继承

继承:Object → MarshalByRefObject → Component → Process


  • 基本介绍

Process 提供对本地和远程进程的访问权限并使你能够启动和停止本地系统进程。

三十九、ProgressBar(进度指示条)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ProgressBar


  • 基本介绍

ProgressBar 控件通过显示以水平条排列的适当数量的矩形来指示操作进度。 操作完成后,将填充条形图。 进度栏通常用于向用户指示等待长时间操作完成的时间,

例如:加载大文件、数据库操作等。

ProgressBar 控件只能位于窗体上的水平定向。

四十、PropertyGrid(显示对象属性)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl → ContainerControl → PropertyGrid


  • 基本介绍

PropertyGrid 提供用于浏览对象属性的用户界面。PropertyGrid 可以设置一些属性,然后当一些控件需要显示属性时,便捷的显示其属性。默认情况下,SelectedObject 的所有公共属性将会在 PropertyGrid 中显示。

要显示某个对象的属性时,只需将该对象赋给PropertyGrid的SelectedObject属性即可。

如果对象的属性通过其他的方式改变了,只需要调用PropertyGrid的Refresh方法,即可更新。

PropertyGrid 控件

例如:创建属性网格并在窗体上设置其位置。 此示例要求你具有一个包含该窗体的 TextBox 窗体。

public Form1()
{
    // The initial constructor code goes here.

    PropertyGrid propertyGrid1 = new PropertyGrid();
    propertyGrid1.CommandsVisibleIfAvailable = true;
    propertyGrid1.Location = new Point(10, 20);
    propertyGrid1.Size = new System.Drawing.Size(400, 300);
    propertyGrid1.TabIndex = 1;
    propertyGrid1.Text = "Property Grid";

    Controls.Add(propertyGrid1);

    propertyGrid1.SelectedObject = textBox1;
}

四十一、RadioButton(单选框)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ButtonBase → RadioButton


  • 基本介绍

RadioButton 是单选按钮,控件向用户显示由两个或更多个互斥选项组成的选项组。 虽然单选按钮和复选框的功能可能看起来类似,但存在一个重要区别:当用户选择单选按钮时,无法同时选择同一组中的其他单选按钮。

RadioButton 控件

四十二、RichTextBox(富文本框)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → TextBoxBase → RichTextBox


  • 基本介绍

RichTextBox 控件用于显示、输入和操作带有格式的文本。 RichTextBox 控件除了实现 TextBox 控件的所有功能之外,还可显示字体、颜色和链接,加载文件中的文本和嵌入的图像,撤销和恢复编辑操作,以及查找指定的字符。

RichTextBox 通常用于提供文本操作和显示功能,这与 Microsoft Word 等文字处理应用程序类似。

RichTextBox 控件可以显示滚动条,这一点与 TextBox 控件相同;但与 TextBox 控件不同的是,它默认显示水平和垂直滚动条,并且拥有更多的滚动条设置。

四十三、SaveFileDialog(保存对话框)


  • 继承

继承:Object → MarshalByRefObject → Component → CommonDialog → FileDialog → SaveFileDialog


  • 基本介绍

SaveFileDialog 组件是一个预配置的对话框。 它与 Windows 使用的标准保存文件对话框相同。 提示用户选择文件的保存位置。 此类不能被继承。

四十四、SplitContainer(拆分成大小可调的两个面板)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl → ContainerControl → SplitContainer


  • 基本介绍



SplitContainer 控件取代了 Visual Studio 早期版本中的 Splitter 控件。

SplitContainer 控件可视为一个复合控件;它是由可移动条隔开的两个面板。 当鼠标指针位于条上方时,指针将改变形状以表示条可移动。

SplitContainer 控件可用于创建复杂的用户界面;通常情况下,在一个面板中的选择将决定显示在另一个面板中的对象。 这种安排对于显示和浏览信息非常有效。 拥有两个面板使你能够在区域、条或“拆分器”中聚合信息,使用户可轻松地调整面板大小。

此外,还可以嵌套多个 SplitContainer 控件,第二个 SplitContainer 控件水平放置,以创建顶部和底部面板。

请注意,默认情况下,SplitContainer 控件可通过键盘访问;如果 IsSplitterFixed 属性设置为 false,用户可以按箭头键移动拆分器。

SplitContainer 控件的 Orientation 属性确定拆分器的方向,而非控件本身的方向。 因此,当此属性设置为 Vertical 时,拆分器会从上到下运行,创建左右面板。

此外,请注意,SplitterRectangle 属性的值因 Orientation 属性的值而异。 有关详细信息,请参阅 SplitterRectangle 属性。

还可以限制 SplitContainer 控件的大小和移动情况。 FixedPanel 属性会确定在调整 SplitContainer 控件大小后哪个面板将保持相同大小,而 IsSplitterFixed 属性确定拆分器是否可以通过键盘或鼠标进行移动。

SplitContainer 控件

四十五、StatusStrip (状态显示)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl → ToolStrip → StatusStrip


  • 基本介绍

StatusStrip 控件在窗体中用作区域,通常显示在窗口底部,应用程序可在此显示各种状态信息。 StatusStrip 控件上通常具有 ToolStripStatusLabel 控件(用于显示文本或图标以指示状态)或 ToolStripProgressBar(用于以图形方式显示进程的完成状态)。

默认 StatusStrip 没有面板。 若要将面板添加到 StatusStrip,则使用ToolStripItemCollection. AddRange 方法。

广泛支持用于处理 StatusStrip 项目和 Visual Studio 中的常见命令。

四十六、TabControl (选项卡)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → TabControl


  • 基本介绍

TabControl 显示多个选项卡,就像笔记本中的分隔线或档案柜中一组文件夹的标签。 选项卡可以包含图片和其他控件。 可以使用选项卡控件可生成多页对话框,该对话框可在 Windows 操作系统中的许多位置显示,例如“控制面板”和“显示属性”。 此外,TabControl 可用于创建属性页面,该页面用于设置一组相关属性。

TabControl 最重要的属性是 TabPages,其中包含各个选项卡。 每个选项卡都是 TabPage 对象。 单击选项卡时,它将引发该 TabPage 对象的 Click 事件

四十七、TableLayoutPanel (网格布局显示)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl → Panel →

TableLayoutPanel


  • 基本介绍

TableLayoutPanel 控件将其内容排列在网格中。 由于布局是同时在设计时和运行时执行的,因此它可随应用程序环境的变化而动态地变化。 这使得面板中的控件能够按比例调整大小,以便能够响应更改(例如父控件的大小调整或本地化产生的文本长度更改)。

任何 Windows 窗体控件均可以是 TableLayoutPanel 控制的子控件,包括 TableLayoutPanel 的其他实例。 这使你可以构造适应在运行时发生更改的复杂布局。

添加新控件时,TableLayoutPanel 控件可扩展以容纳新控件,具体取决于 RowCount、ColumnCount 和 GrowStyle 属性的值。 将 RowCount 或 ColumnCount 属性的值设置为 0 指定将取消 TableLayoutPanel 在相应方向的绑定。

在 TableLayoutPanel 控件充满子控件后,还可控制扩展的方向(水平或垂直)。 默认情况下,TableLayoutPanel 控件通过添加行向下扩展。

如果需要使行和列的行为不同于默认行为,可以通过使用 RowStyles 和 ColumnStyles 属性来控制行和列的属性。 可分别设置行或列的属性。

TableLayoutPanel 控件将以下属性添加到其子控件中:Cell、Column、Row、ColumnSpan 和 RowSpan。

可以通过设置子控件上的 ColumnSpan 或 RowSpan 属性来合并 TableLayoutPanel 控件中的单元格。

TableLayoutPanel 控件

四十八、TextBox (输入文本)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → TextBoxBase → TextBox


  • 基本介绍

Windows 窗体文本框用于获取来自用户的输入或显示文本。 TextBox 控件通常用于可编辑文本,但也可以将其设置为只读。 文本框可以显示多行,换行文本以适应控件大小并添加基本格式。 TextBox 控件为控件中显示或输入的文本提供了单一格式样式。 若要显示多种类型的格式化文本,需使用 RichTextBox 控件。

控件显示的文本包含在 Text 属性中。 默认情况下,可以在文本框中输入最多 2048 个字符。 如果将 Multiline 属性设置为 true,则最多可以输入 32 KB 的文本。 可以在设计时使用属性窗口、在运行时使用代码或由用户在运行时输入内容来设置该 Text 属性。 可以通过读取 Text 属性在运行时检索文本框的当前内容。

TextBox 控件

四十九、Timer (定时器)


  • 继承

继承:Object → MarshalByRefObject → Component → Timer


  • 基本介绍

Timer 是一种按固定事件间隔引发事件的组件。 此组件专为 Windows 窗体环境设计,不能支持服务器环境。

Timer 组件的关键方法是 Start 和 Stop,这会打开和关闭计时器。 当计时器关闭时,它将重置;无法暂停 Timer 组件。

五十、ToolStrip (通用组合框架的基类)


  • 继承与派生

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl → ToolStrip

派生:

System.Windows.Forms.BindingNavigator
System.Windows.Forms.MenuStrip
System.Windows.Forms.StatusStrip
System.Windows.Forms.ToolStripDropDown

  • 基本介绍

ToolStrip 控件及其关联类提供了一个通用框架,用于将用户界面元素组合到工具栏、状态栏和菜单中。 ToolStrip 控件提供丰富的设计时体验,包括就地激活和编辑、自定义布局和漂浮,使工具栏可以共享水平或垂直空间。

五十一、ToolStripContainer(提供悬浮工具栏和可拖拽的工具栏)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl → ContainerControl → ToolStripContainer


  • 基本介绍

ToolStrip 控件通过使用 ToolStripContainer 而具有内置漂浮功能(停靠时在工具区域中共享水平或垂直空间)。

ToolStripContainer 在窗体的每一侧提供面板,并提供可以容纳一个或多个控件的中间面板。在其左侧、右侧、顶部和底部具有面板,用于定位和漂浮 ToolStrip、MenuStrip 和 StatusStrip 控件。 如果将多个 ToolStrip 控件放置在 ToolStripContainer 左侧或右侧,它们会垂直堆叠。 如果将其放置在 ToolStripContainer 顶部或底部,则水平堆叠。 可使用 ToolStripContainer 的中央 ToolStripContentPanel 将传统控件放置在窗体上。

任何或所有 ToolStripContainer 控件都可在设计时选择且可删除。 ToolStripContainer 的每个面板都是可展开和可折叠的,并且可以根据其包含的控件重设大小。

ToolStripContainer 控件

五十二、ToolTip(解释控件用的提示信息)


  • 继承

继承:Object → MarshalByRefObject → Component → ToolTip


  • 基本介绍

ToolTip 组件在用户指向控件时显示文本。 ToolTip 可与任何控件关联。 此控件的一个用法示例:为了节省窗体上的空间,可在按钮上显示一个小图标,并使用 ToolTip 来解释按钮功能。

ToolTip 组件的关键方法是 SetToolTip 和 GetToolTip。 可以使用 SetToolTip 方法设置为控件显示的 ToolTip。

关键属性包括 Active 和 AutomaticDelay,前者必须设置为 true 以便显示 ToolTip,后者用于设置显示 ToolTip 字符串的时长、用户必须指向控件多长时间才能显示 ToolTip,以及显示后续 ToolTip 窗口需要多长时间。

五十三、TrackBar(滑块)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → TrackBar


  • 基本介绍

TrackBar 控件(有时也称为“滑块”控件)用于浏览大量信息或直观调整数值设置。 TrackBar 控件包含两个部分:Thumb 控件(也称为滑块)和刻度线。 Thumb 控件是可以调节的部分。 其位置对应于 Value 属性。 刻度线是按一定间隔排列的视觉对象指示器。 跟踪条按指定的增量移动,可以水平或垂直对齐。 跟踪条的示例用法是设置光标闪烁率或鼠标速度。

五十四、TreeView(树状层次结构)


  • 继承

继承:Object → MarshalByRefObject → Component → Control → ScrollableControl → ContainerControl → ToolStripContainer


  • 基本介绍

TreeView 控件,可以为用户显示节点层次结构,就像在 Windows 操作系统的 Windows 资源管理器功能的左窗格中显示文件和文件夹一样。

树视图中的各个节点可能包含其他节点,称为子节点。 以按展开或折叠的方式显示父节点或包含子节点的节点。 还可以通过将树视图的 CheckBoxes 属性设置为 true 来显示在节点旁边带有复选框的树视图。 然后,通过将节点的 Checked 属性设置为 true 或 false,可以采用编程方式来选中或清除节点。

TreeView 控件的键属性包括 Nodes 和 SelectedNode。 Nodes 属性包括树视图中的顶级节点列表。 SelectedNode 属性设置当前选中的节点。 你可以在节点旁边显示图标。 该控件使用在树视图的 ImageList 属性中命名的 ImageList 中的图像。 ImageIndex 属性可以设置树视图中节点的默认图像。


敬谢诸君。



京华西山之巅。



版权声明:本文为CuPhoenix原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。