突然发现一个关于c#窗体控件的网站还不错:http://c.biancheng.net/view/2946.html
还一个微软.net网址为:https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.openfiledialog?view=netframework-4.8
一、公共控件
出发点:本来是想找一个详细介绍c#窗体控件的资料,无果。自己总结一下:
1、Button
2、checkBox
3、Label
4、radioButton
5、TextBox
5.1 常规用处
Text属性设置为D:\Param.xml
5.2 允许显示多行文本属性
之后,文本框就可以拉长到指定位置
6、Combobox
6.1
原始状态
运行时状态
组合框控件(ComboBox):将文本框控件(TextBox)与列表框控件(ListBox)的特性结合为一体。
可以如同列表框一样,让用户选择所需项目;又可以如同文本框一样输入文本,来选择表项。
6.2 如何为组合框 添加/移除值?
方法1:组合框右键--编辑项。输入每一个行内容
之后,在窗体设计器Form2.Designer.cs文件中就会自动生成添加项。
方法2:双击窗体Form2,在窗体的加载事件中 添加/移除 项
6.3 将组合框中的文本传递出去(传值)
实例化的时候,将当前窗体Form2上的textBox1、textBox2、comboBox1、listBox1中的文本作为参数传递到窗体Form3
实例化方式1:
实例化方式2:
前提条件是,修改Form3的构造函数为:
7、ListBox
this.listBox1.Items.Add("DotNet");
this.listBox1.Items.Add("C#");
this.listBox1.Items.Add("Asp.net");
this.listBox1.Items.Add("WebService");
this.listBox1.Items.Add("XML");
7.2 为列表框 添加/移除项
方法1:列表框右键--编辑项。输入每一个行内容
之后,在窗体设计器Form2.Designer.cs文件中就会自动生成添加项。
方法2:双击窗体Form2,在窗体的加载事件中 添加/移除 项
7.3 将列表框中的文本传递出去(传值)
实例化的时候,将当前窗体Form2上的textBox1、textBox2、comboBox1、listBox1中的文本作为参数传递到窗体Form3
实例化方式1:
实例化方式2:
前提条件是,修改Form3的构造函数为:
8、PictureBox-图片显示框
右键-添加图片-从本地导入一张
9、ToolStrip --工具栏
9.1
用Dock属性--默认是Top
如果把Dock属性设置为Bottom。那么工具栏就会跑到父窗口Form1的底部。
9.2 ToolStrip类:为windows工具栏对象(以下8个控件)提供容器。
对应
10、TabControl 和 其中的 TabPage --- 容器
外面的大框是tabControl,它包含3个tabPage。可以通过右键--添加选项卡,添加更多的tabPage。
每个tabPage中又可以放很多其他的控件,比如:button、label、groupBox等等。
11、DataGridView--数据
向tabPage1中添加一个DataGridView。
右键--添加列
右键--编辑列--外观中 HeaderText:分别设置为姓名、性别、年龄
12、Panel-面板(容器)
在Form窗体上可以放置一个Panel,并在其中放置button、label、groupBox等等。
13、HScrollBar(水平滚动条)、VScrollBar(垂直滚动条)
为PictureBox添加滚动条方法:
由于PictureBox不是容器控件,所以他没有AutoScrollMinSize和AutoScrollPosition两个属性,所以不能直接设置。
方法1:先在Form/自定义窗体上放置一个Panel容器,然后把PictureBox放在Panel上,然后设置Panel和PictureBox属性如下:
此时如果导入的图片比PictureBox大,就会自动出现滚动条。
方法2:
在pictureBox的右侧添加一个VScrollBar、底部添加一个HScrollBar
14.RichTextBox (富文本框)
14.1 TextBox(通过设置MutiLine属性为true,也可以接受多行),但是需要:字符串读取器StreamReader、字符串写入器StreamWriter;
RichTextBox 则不用;
14.2 richTextBox1.Text.Length:统计富文本的字数长度。
15、mainMenu--主菜单
16、ImageList--图像列表
16.1 首先,将工具栏--组件,中的ImageList拖到Form1上。
其次,点击imageList1 的Images属性,右侧的集合按钮。会弹出图像集合编辑器。
之后,点击添加按钮,会弹出一个选择图像的弹出框,选择多个需要的图像,点击打开即可。这里我们选择5幅图片,点击确定即可。
16.2 之后,工具箱右键--选择项,在.NetFrameWork组件中搜索ToolBar工具条。添加到工具栏,并将其拖到Form1上。
然后,选择toolBar1的ImageList(图像列表属性)为imageList1。
然后,点击toolBar1的Button属性右侧的集合按钮。在弹出的ToolBarButton集合编辑器中点击添加按钮,添加5个toolBarButton。
最后,在toolBarButton的ImageIndex属性选择对应的图片。比如选择toolBarButton1的ImageIndex为图片0,选择toolBarButton2的ImageIndex为图片1等。选择完后,点击“确定”按钮即可。
17、ToolBar--工具条
17.1 手动设置属性
设置toolBarButton控件的 Text属性:工具条中按钮的显示文本; ToolTipText属性:工具条中按钮的提示信息。
运行的时候,当鼠标放置在第二个按钮上时 显示如下:
17.2 方法2:使用Form1的Load事件,设置ToolBar工具条
18、StatusStrip--状态条
在状态栏上不能直接编辑文字,需要添加其他的控件来辅助。
单击上图所示界面中新添加的状态栏控件,则会显示如下图所示的下拉菜单,其中包括:
标签控件(StatusLabel):此控件用于显示文本,类似Label标签,和Label标签具有相同的属性。
进度条(ProgressBar)、
下拉列表按钮(DropDownButton)、
分割按钮(SplitButton)。
实例:
19、Timer--定时器
组件--Timer
实例:
点击“启动定时器”,timer1定时器,1s钟触发一次Tick事件,进而调用一次timer1_Tick方法。第一次flag=false,下一次flag=true,再下一次flag=false。。。。进而实现1s钟切换一次图片显示。
20、ListView--列表视图
见博客:https://blog.csdn.net/bruce135lee/article/details/79669014
二、控件的区别
三、对话框
1、文件对话框(FileDialog)
由下图可以看到右侧工具栏-->对话框,将选择的对话框扔到Form1上即可在下方显示出来openFileDialog1、saveFileDialog1
1.1 OpenFileDialog(打开文件对话框)
点击“打开文件”按钮
点击“打开”按钮,txt中的内容就显示在了Form1上的TextBox中了。
1.2 SaveFileDialog(保存文件对话框)