winform各种属性方法控件

小飛 小飛     2022-07-30     760

关键词:

窗体是程序与用户交互的可视界面,窗体也是对象,窗体类定义了生成窗体的模版,实例化一个窗体类就产生了一个窗体。

.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、TableLayoutPanel

7. 特殊实现

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:小数点后位数,默认0

ThousandsSeparater:千分符,默认false

Hexadecimal :十六进制显式

 

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("确定删除吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                {
                    dataGridView1.Rows.Remove(dataGridView1.CurrentRow);
                }
            }

winform1

一、窗体的各种属性二、控件1.公共控件2.容器控件 3.菜单控件  查看详情

winform用户控件timer控件三级联动

用户控件:相当于自定义的一个panel里面可以放各种其他控件,并可以在后台一下调用整个此自定义控件。使用方法:在项目上右键、添加、用户控件,之后用户控件的编辑与普通容器控件类似。如果要在后台往窗体中添加,将... 查看详情

c#winform跨线程更改窗体控件的属性

  当winform程序中新开一个线程,是无法改变主线程中窗体控件的属性的,否则运行时会报错。  若想在其他线程中控制主线程中的窗体控件,则必须利用BeginInvoke方法。  例如:添加一个名为textbox1的TextBox控件,想将它的... 查看详情

c#winform动态添加控件

第一步,想要添加什么对象,就先通过NEW关键字,实例化一个对象,创建一个对象的实体。第二部,设置当前对象实体的属性值,事件等。第三部,通过容器对象的Controls(该属性为一个集合)属性的Add方法添加你当前创建的对... 查看详情

在运行时更改 winforms 控件

】在运行时更改winforms控件【英文标题】:Changewinformscontrolatruntime【发布时间】:2018-10-1812:01:20【问题描述】:我通过以下方式继承了用户控件:控制基础|__ControlInherited1|__ControlInherited2ControlBase包含在每个继承的控件中被覆盖的... 查看详情

在.NET(Winforms)中的表单中居中控件?

】在.NET(Winforms)中的表单中居中控件?【英文标题】:Centeringcontrolswithinaformin.NET(Winforms)?【发布时间】:2010-10-0405:35:43【问题描述】:我正在尝试将固定大小的控件置于表单的中心。出于兴趣,有没有一种不愚蠢的方法?我真... 查看详情

Winforms中控制的绑定属性

】Winforms中控制的绑定属性【英文标题】:BindingpropertytocontrolinWinforms【发布时间】:2011-08-1812:05:46【问题描述】:将属性绑定到控件的最佳方法是什么,以便在更改属性值时,控件的绑定属性也会随之更改。如果我有一个属性Fir... 查看详情

winform控件大全,要详细的.

WinForm控件大全,要详细的.基础-常用控件C#WinForm开发系列-CheckBox/Button/Label/ProgressBarWinForm下CheckedListBox的数据绑定Winform下无闪烁走马灯效果实现c#,winform,progressbar+labe,联动显示进度C#WinForm开发系列–TextBox只能输入数字的TextBox---补... 查看详情

winform------gridcontrol控件中使用searchlookupedit控件的方法

1.在数据库添加两张表,拥有主外键关系主键表:外键表: 2.往工具栏里拖出GridCont控件,并增加相应的列,这里对"省份"进行修改,"FileName"里面的值与数据库的列名对应,下面的"(Name)"可以与FileName相同;FileName:ProvinceID(Name):Prov... 查看详情

c#的winform,怎么根据控件的名字获取控件属性!

例如,知道控件的名称是“Button1”怎么获取Button1.click谢谢高手指点,网上查的一些资料都没试验成功,都提示:未将对象实例化1、使用C#窗体中自带的方法publicControl[]Find(stringkey,boolsearchAllChildren)。2、自己写个foreach 循环方... 查看详情

winform用户窗体

用户控件:相当于自定义的一个panel里面可以放各种其他控件,并可以在后台一下调用整个此自定义控件。使用方法:在项目上右键、添加、用户控件,之后用户控件的编辑与普通容器控件类似。如果要在后台往窗体中添加, ... 查看详情

c#的winform怎么根据控件的名字获取控件属性?

这首先要看控件所在的Form类有没有实例化,若已经实例化,可以通过构造传参或委托的方式完成。构造传参:将控件所在的Form类实例化对象作为参数传到你new的新Form中。C#实现根据指定容器和控件名字获得控件的方法,在进行C... 查看详情

winform跨线程访问控件

首先说下,.net2.0以后加强了安全机制,不允许在winform中直接跨线程访问控件的属性。所以除了控件所在的线程外的线程调用会抛异常(Cross-threadoperationnotvalid:Control‘textBox1‘accessedfromathreadotherthanthethreaditwascreatedon.)下面进入正... 查看详情

c#winform如何给report.rdlc图像控件,添加我电脑里保存的图片?

sources属性里好像有3种不同方式,跪求各种方式添加方法。详细点。对你们真的是无语,这么个简单的问题搞得人家晕头转向:参考技术A操作还是以MSDN方法为主;个人:根据所提供截图,已经在RDLC拉入了IMAGE控件。1.在工程内目... 查看详情

winform公共控件及属性

1/button(按钮):autosize:自动匹配尺寸location:确定控件位置margin:控件与控件之间的尺寸maxsise:控件的最大尺寸minsize:控件的最小尺寸enable:确定是否启用控件visible:确定控件是否可见name:指示代码中用来标志该对象的名称tag:用... 查看详情

winform绘制自定义控件

绘制一个矩形,在运行时可以点击,并且能像文本框一样输入文本。这样的控件该怎么实现啊画矩形可以不用说了,很简单,但是后面的没头绪...2楼方法我曾想过,但这样的话会像和label就没有多大分别了,也就是多了个框3楼... 查看详情

c#winform窗口大小控件位置

窗口最小化时,控件是居中的;当窗口最大化时,控件还是居中。代码or方法都行。在窗体调整大小事件中,重算控件的位置就可以了.privatevoidForm1_Resize(objectsender,EventArgse)this.button1.Top=(this.Height-this.button1.Height)/2;this.button1.Left=(t... 查看详情

winform创建自定义控件

虽然VS为我们提供了很多控件可以使用,但有时候这些控件仍然不能满足我们的要求,比如我们要对部分控件进行一些个性化的定制,例如美化控件,这时候就需要自己绘制控件,或是在原有控件的基础上进行修改自定义控件分... 查看详情