您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页c#winform控件及窗体属性

c#winform控件及窗体属性

来源:抵帆知识网
c#winform控件及窗体属性

窗体是程序与⽤户交互的可视界⾯,窗体也是对象,窗体类定义了⽣成窗体的模版,实例化⼀个窗体类就产⽣了⼀个窗体。.NET框架类库的System.Windows.Forms命名空间中定义的Form类是所有窗体类的基类。1、常⽤属性

属性:图标、标题、位置、背景等可在窗体属性⾯板设置,也可以代码实现。

(1)Name属性:⽤来获取或设置窗体的名称,在应⽤程序中可通过Name属性来引⽤窗体。

(2)WindowState属性:⽤来获取或设置窗体的窗⼝状态。取值有三种:Normal(窗体正常显⽰)、Minimized(窗体以最⼩化形式显⽰)和Maximized(窗体以最⼤化形式显⽰)。

(3)StartPosition属性:⽤来获取或设置运⾏时窗体的起始位置。

(4)Text属性:该属性是⼀个字符串属性,⽤来设置或返回在窗⼝标题栏中显⽰的⽂字。

(5)AcceptButton属性:该属性⽤来获取或设置⼀个值,该值是⼀个按钮的名称,当按Enter键时就相当于单击了窗体上的该按钮。(6)CancelButton属性:该属性⽤来获取或设置⼀个值,该值是⼀个按钮的名称,当按Esc键时就相当于单击了窗体上的该按钮。

(7)Modal属性:该属性⽤来设置窗体是否为有模式显⽰窗体。如果有模式地显⽰该窗体,该属性值为true;否则为false。当有模式地显⽰窗体时,只能对模式窗体上的对象进⾏输⼊。必须隐藏或关闭模式窗体(通常是响应某个⽤户操作),然后才能对另⼀窗体进⾏输⼊。有模式显⽰的窗体通常⽤做应⽤程序中的对话框。

(8)ActiveControl属性:⽤来获取或设置容器控件中的活动控件。窗体也是⼀种容器控件。(9)ActiveMdiChild属性:⽤来获取多⽂档界⾯(MDI)的当前活动⼦窗⼝。

(10)AutoScroll属性:⽤来获取或设置⼀个值,该值指⽰窗体是否实现⾃动滚动。如果此属性值设置为true,则当任何控件位于窗体⼯作区之外时,会在该窗体上显⽰滚动条。另外,当⾃动滚动打开时,窗体的⼯作区⾃动滚动,以使具有输⼊焦点的控件可见。

(11)Enabled属性:⽤来获取或设置⼀个值,该值指⽰控件是否可以对⽤户交互作出响应。如果控件可以对⽤户交互作出响应,则为true;否则为false。默认值为true。

(12)KeyPreview属性:⽤来获取或设置⼀个值,该值指⽰在将按键事件传递到具有焦点的控件前,窗体是否将接收该事件。值为true时,窗体将接收按键事件,值为false时,窗体不接收按键事件。

(13)ShowInTaskbar属性:⽤来获取或设置⼀个值,该值指⽰是否在Windows任务栏中显⽰窗体。

(14)Visible属性:⽤于获取或设置⼀个值,该值指⽰是否显⽰该窗体或控件。值为true时显⽰窗体或控件,为false时不显⽰。(15)Capture属性:如果该属性值为true,则⿏标就会被限定只由此控件响应,不管⿏标是否在此控件的范围内。2、常⽤⽅法

⾃⾝窗体 使⽤this 例如 this.hide();其它窗体

Form2 f2 = new Form2();f2.Show();

下⾯介绍⼀些窗体的最常⽤⽅法。

(1)Show⽅法:该⽅法的作⽤是让窗体显⽰出来,其调⽤格式为:窗体名.Show();

其中窗体名是要显⽰的窗体名称。

(2)Hide⽅法:该⽅法的作⽤是把窗体隐藏出来,其调⽤格式为:窗体名.Hide();

其中窗体名是要隐藏的窗体名称。

(3)Refresh⽅法:该⽅法的作⽤是刷新并重画窗体,其调⽤格式为:窗体名.Refresh();

其中窗体名是要刷新的窗体名称。

(4)Activate⽅法:该⽅法的作⽤是激活窗体并给予它焦点。其调⽤格式为:窗体名.Activate();

其中窗体名是要激活的窗体名称。

(5)Close⽅法:该⽅法的作⽤是关闭窗体。其调⽤格式为:窗体名.Close();

其中窗体名是要关闭的窗体名称。

(6)ShowDialog⽅法:该⽅法的作⽤是将窗体显⽰为模式对话框。其调⽤格式为:窗体名.ShowDialog();

3.常⽤事件

为窗体、控件添加事件在属性⾯板的“事件”选项卡⾥操作。

(1)Load事件:该事件在窗体加载到内存时发⽣,即在第⼀次显⽰窗体前发⽣。(2)Activated事件:该事件在窗体激活时发⽣。

(3)Deactivate事件:该事件在窗体失去焦点成为不活动窗体时发⽣。(4)Resize事件:该事件在改变窗体⼤⼩时发⽣。(5)Paint事件:该事件在重绘窗体时发⽣。

(6)Click事件:该事件在⽤户单击窗体时发⽣。

(7)DoubleClick事件:该事件在⽤户双击窗体时发⽣。(8)Closed事件:该事件在关闭窗体时发⽣。4. 添加事件

以窗体Load事件为例:

Load(加载)事件发⽣于Form窗体的加载时候,其设置步骤如下。

(1)打开VS2008,新建⼀个Windows窗体应⽤程序,并命名为FormEventTest。(2)打开其Form1的属性窗⼝,切换到“事件”选项卡(⼀个闪电标志)

(3)找到Load事件项,然后双击进⼊该事件代码编辑⽂件Form1.cs,为其编写代码。5.继承窗体

继承窗体就是根据现有窗体的结构创建⼀个与其⼀样的新窗体,这种从现有窗体继承的过程称为可视化继承。两种⽅式创建继承窗体编程⽅式:from2:from1继承选择器: 6.控件

窗体由控件构成,控件分常⽤控件和⾼级控件,常⽤控件主要有⽂本类控件、选择类控件及分组控件等。C#控件的基类是System.Windows.Forms命名空间下的Control类⽂本类控件:Label、Button、TextBox、RichTextBox选择类控件:CheckBox、ComboBox、ListBox、RadioButton

分组控件:GroupBox、Panel、FlowLayoutPanel、SplitContainer、TabControl、TableLayoutPanel7. 特殊实现(1)启动欢迎界⾯

将该界⾯设置为欢迎界⾯,添加Timer控件,倒计时数秒后启动主界⾯

(2)多窗体应⽤程序设置启动窗体在Program.cs中,改变Run⽅法的参数public static void Run(From mainFrom);例如:Application.Run(new Form1());其中,Form1为窗体名

(3)程序退出窗体相关事件this.hide(); //隐藏this.show(); 显⽰

this.Close(); 关闭,注意会关闭整个应⽤程序Application.Exit(); 关闭,注意会关闭整个应⽤程序(4)“接受”按钮、“取消”按钮acceptbutton cancelbutton(5)启动浏览器打开⽹页

System.Diagnostics.Process.Start(e.LinkText); //e.LinkText换成具体链接

(6)判断某字符串是否为数字型

int a;

if(Int32.TryParse(textBox1.Text, out a)) {

//MessageBox.Show(\"数字\"); } else {

MessageBox.Show(\"⾮数字\"); }

8. ⽂本框 TextBox

密码⽂本框:设置⽂本框的PasswordChar属性,或UseSystemPasswordChar属性多⾏⽂本框:Multiline属性设为True

突出显⽰:设置SelecttionStart、SelectionLength属性9. RichTextBox

有格式⽂本控件,⽤于显式、输⼊和操作带有格式的⽂本,⽐如实现显式字体、颜⾊、链接、从⽂件加载⽂本、及嵌⼊的图形、撤销重复编辑操作以及查找字符串功能。10.下拉组合框 ComboBox(1)DropDownStyle:设置样式Simple:列表部分总是可见

DropDown:为默认值,可编辑⽂本框DropDownList:不能编辑⽂本框

(2)SelectAll() ⽅法选择可编辑框的所有⽂本

11 复选框 CheckBox

CheckState属性:是否选中,值为Checked、Unchecked

12.单选按钮

checked属性:是否选中职位True,

13.数值选择控件

(1)⽤于显⽰和输⼊数值,提供上下箭头,⽤户可以直接输⼊,也可以⽤箭头修改数值Maximum:最⼤值Mininmun:最⼩值Value:值(2)显式格式

DecimalPlaces:⼩数点后位数,默认0ThousandsSeparater:千分符,默认falseHexadecimal :⼗六进制显式

14.列表控件 ListView

(1)添加删除项⽬:ListBox控件Items属性的Add⽅法、Remove⽅法

(2)当前选中项⽬:ListBox的SelectedItem属性(3)多选:SelectionMode属性MultiExtended(可⽤Shift、Ctrl键)MultiSimple 多选One:单选None:⽆法选择(4)选中的项数

listBox1.SelectedItems.Count.ToString(); 多选情况下样式、列标头、列宽设置

listView1.View = View.Details; //视图样式,

listView1.Columns.Add(\"⽂件名\"); //添加标头 listView1.Columns.Add(\"路径\");listView1.Columns.Add(\"⼤⼩\");

listView1.Columns.Add(\"创建时间\");

listView1.Columns[0].Width = 100; //设置宽度listView1.Columns[1].Width = 200; //设置宽度listView1.Columns[2].Width = 100; //设置宽度listView1.Columns[3].Width = 100; //设置宽度 //添加项

listView1.Items.Clear(); //清空

listView1.Items.Add(processes[i].ProcessName);

listView1.Items[listView1.Items.Count - 1].SubItems.Add(processes[i].Id.ToString());listView1.Items[listView1.Items.Count - 1].SubItems.Add(processes[i].Id.ToString());listView1.Items[listView1.Items.Count - 1].SubItems.Add(processes[i].Id.ToString());

15.分组控件Panel:

GroupBox:分组框TabControl:选项卡

(1)为选项卡设置图标,改变选项卡标题

创建⼀个windows应⽤程序,向窗体添加⼀个ImageList控件,然后像ImageList控件添加图形列表;

添加⼀个TabControl控件,将其ImageList属性设置为ImageList1控件,并将TabPage选项卡的ImageIndex属性设置为列表中相应图像的索引。

(2)将选项卡显⽰为按钮

将TabControl控件的Appearence属性设置为Buttons或FlatButtons,可以将选项卡显⽰为按钮样式。(三维按钮、平⾯按钮)tabControl1.Appearance = TabAppearance.Buttons;(3)在选项卡中新增控件使⽤New进⾏初始化类,调⽤添加(4)添加、移除选项卡添加:TabPages属性的Add⽅法

string title = \"新增选项卡\" + (tabControl1.TabCount+1);TabPage myTabPage = new TabPage(title);tabControl1.TabPages.Add(myTabPage);

删除:TabPages属性的Remove⽅法

tabControl1.TabPages.Remove(tabControl1.SelectedTab);移除所有选项卡:TabPages属性的clear(5)DataGridView列宽设置⽆效?

需要把列的 AutoSizeMode 属性设为None,宽度设置才会⽣效。列标题居中

dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; //标题居中列居中对齐

dataGridView1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;如何让全部列填充满整个控件?

点击datagridview右上⾓的⼩三⾓->\"编辑列\"->选中最后⼀列->右边的属性框有个“布局”->\"AutoSizeMode\"的属性,设置它为Fill就Ok了dataGridView选中的时候选中正⾏⽽不是⼀个单元格

dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //选中正⾏,⽽⾮单元格最左列的赋值

datagridview.Rows[i].HeaderCell.Value最左列的显⽰与改变宽度

dataGridView1.RowHeadersVisible = false; //最左侧列 隐藏dataGridView1.RowHeadersWidth = 60; //设置宽度防删除出错

int indexid = dataGridView1.CurrentRow.Index; //当前⾏

//MessageBox.Show(dataGridView1.Rows.Count.ToString() + indexid.ToString()); if (indexid < 0 || indexid >= dataGridView1.Rows.Count - 1) { } else {

if (MessageBox.Show(\"确定删除吗?\提⽰\ {

dataGridView1.Rows.Remove(dataGridView1.CurrentRow); } }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务