Csharp控件详解
- 格式:docx
- 大小:47.08 KB
- 文档页数:25
C#自定义控件属性与行为分类:C#2010-10-08 09:49 1337人阅读评论(1) 收藏举报控件应该定义属性而不是公共字段,因为可视化设计器在属性浏览器中显示属性,而不显示字段。
属性就像智能字段。
属性通常具有带访问函数的专用数据成员,在语法上属性被作为类的字段进行访问。
(虽然属性可以具有不同的访问级别,但此处的讨论将重点放在公共访问这种更加常见的情况上。
属性定义通常由以下两部分组成:1、专用数据成员的定义。
[c-sharp]view plaincopy1.private int number = 0;2、使用属性声明语法对公共属性进行的定义。
[c-sharp]view plaincopy1.//该语法通过 get 和 set 访问函数将专用数据成员和公共属性关联起来。
2.public int MyNumber3.{4.get5.{6.return number;7.}8.set9.{10.number = value;11.}12.}虽然属性定义中通常包含专用数据成员,但这不是必需的。
get 访问器不用访问私有数据成员就可以返回值。
get 方法返回系统时间的属性就属于这种情况。
属性启用数据隐藏,访问器方法隐藏属性的实现。
定义属性时需考虑以下重要的注意事项:1、必须将属性应用于定义的属性。
属性用来指定设计器显示属性的方式。
2、如果改变属性将影响控件的外观显示,请从set 访问器中调用Invalidate 方法(从Control 继承该方法)。
Invalidate 随后调用OnPaint 方法,该方法将重新绘制控件。
为提高效率起见,对Invalidate 的多次调用将产生对OnPaint 的一次调用。
3、 .NET Framework 类库为常见数据类型(如整数、小数、布尔值和其他数据)提供了类型转换器。
类型转换器的目的通常是用来提供字符串到数值的转换(从字符串数据转换为其他数据类型)。
常见数据类型与默认类型转换器(将数值转换为字符串,并将字符串转换为相应数据类型)相关联。
C#.NET 程序设计第1章.NET和C#简介z1.1 .NET 概述.NET首先是一个开发平台,它定义了一种公用语言子集(Common Language Sbuset, CLS),这是一种为符合其规范的语言与类库之间提供无缝集成的混合语言,.NET统一了编程类库,提供了对下一代网络通信标准,可扩展标记语言(XML)的完全支持,使应用程序的开发变得更容易,更简单。
理解.NET 最简单的方式是把它看作是执行代码的环境。
.NET管理代码的执行——启动代码、给它赋予相应的权限、为它分配内存以存储其数据,帮助释放某些不再需要的内存和资源等。
除了执行这些任务外,.NET还要使用一个非常复杂的类库——所谓的.NET基类,以便在Windows上执行大量的任务。
对这一任务, .NET承担了双重角色:管理代码的执行和为代码提供服务。
如前所述,.NET位于代码和Windows之间,可以提供需要的服务。
在解释.NET程序执行时发生的情况之前,先定义一下.NET组件和我们需要的其他术语。
z1.2 和.NET相关的几个概念¾.NET运行(库)时:也称为公共语言运行时(Common Language Runtime, CLR),它实际管理代码。
它可以处理加载程序、运行程序的代码,以及提供所有支持服务的代码。
跟VB6运行库(MSVBVM60.DLL)功能类似。
¾受管制的代码:在.NET环境中运行的任何代码都称为受管制的代码(Managed code)。
.NET外部的其他代码也运行在Windows上,这些代码称为未受管制的代码(unmanaged code)。
¾中间语言(IL):在.NET运行库加载和运行代码时,这种语言确定代码的位置。
在编译受管制的代码时,编译器实际上使用中间语言,CLR处理代码执行前的最后编译阶段。
IL可以非常快速地编译为内部的机器代码,同时支持.NET的功能。
¾公共类型系统(CTS):为了实现语言的互操作性,必须有一组各种语言都认可的基本数据类型,这样才能对所有语言进行标准化处理。
csharp cancellationtoken使用-回复CancellationToken 是在C# 中使用异步编程模型时一个非常有用的类。
它提供了一种机制,用于在异步操作运行期间通知取消操作并停止该操作的执行。
在本篇文章中,我将详细介绍CancellationToken 及其使用方法,从而帮助读者更好地理解和使用这个类。
首先,让我们先来了解一下CancellationToken 的基本概念。
CancellationToken 是 .NET Framework 中的一个类,位于System.Threading 命名空间中。
它通常用于协调和控制异步操作的取消。
当我们开始一个异步操作,并且希望能够在某个条件满足时立即取消这个操作时,就可以使用CancellationToken。
那么,如何使用CancellationToken 呢?首先,我们需要声明一个CancellationTokenSource 对象,并将其作为参数传递给异步操作的方法。
接下来,我们可以通过调用CancellationTokenSource 对象的CancellationToken 属性来获取一个CancellationToken 对象,然后将该对象传递给异步操作的方法。
下面是一个简单的示例:csharppublic class MyWorker{private CancellationTokenSource _cancellationTokenSource;public async Task StartAsync(){_cancellationTokenSource = new CancellationTokenSource();CancellationToken cancellationToken =_cancellationTokenSource.Token;await DoSomeAsyncWorkAsync(cancellationToken);}public void Stop(){_cancellationTokenSource?.Cancel();}private async TaskDoSomeAsyncWorkAsync(CancellationToken cancellationToken) {异步操作的代码await Task.Delay(TimeSpan.FromSeconds(5), cancellationToken);检查异步操作是否被取消了cancellationToken.ThrowIfCancellationRequested();继续处理其他的逻辑}}在上述示例中,我们首先创建了一个CancellationTokenSource 对象,并将其保存在类的私有字段中。
命名规范_C(Sharp)1.命名规范a)类【规则1-1】使用Pascal规则命名类名,即首字母要大写。
【规则1-2】使用能够反映类功能的名词或名词短语命名类。
【规则1-3】不要使用“I”、“C”、“_”等特定含义前缀。
【规则1-4】自定义异常类应以Exception结尾。
【规则1-5】文件名要能反映类的内容,最好是和类同名。
b)类字段【规则2-1】用camel规则来命名类成员变量名称,即首单词(或单词缩写)小写。
【规则2-2】类字段变量名前可加“_”前缀。
【规则2-3】坚决禁止在普通变量前加“m_”(这是VC老命名规则)。
c)方法【规则3-1】方法名采用Pascal规则,第一个字符要大写。
【规则3-2】方法名应使用动词或动词短语。
【规则3-3】类中访问修饰符或功能相同的方法应该放在一起,且公共或实现接口的方法在前。
d)属性【规则4-1】使用名词定义属性,属性使用Pascal规则,首字符大写。
【规则4-2】属性和相应字段名称要关联,可以使用“重构”菜单来生成属性。
e)参数【规则5-1】参数采用camel规则命名,且首字符小写。
【规则5-2】使用描述性参数名称,参数名称应当具有最够的说明性。
【规则5-3】不要给参数加匈牙利语类型表示法的前缀。
【规则5-4】检查方法所有输入参数的有效性。
f)常量【规则6-1】只读常量使用Pascal命名规则,即首字母大写。
【规则6-2】枚举名使用Pascal规则命名,枚举成员本质属于常量,命名规则同上。
【规则6-3】枚举值从小到大顺序定义。
【规则6-4】静态字段或属性采用Pascal规则,即首字符大写。
g)接口【规则7-1】接口定义使用Pascal规则,且必须以大写“I”开头。
【规则7-2】接口名称要有意义,中间不要有下划线“_”等字符。
【规则7-3】如果类实现了接口,名称尽量和接口相同,只是省掉“I”字符。
h)事件【规则8-1】委托名称采用Pascal规则,即首字符大写。
C#基础知识.NET/DOTNET:一般指.NET FRAMEWORK框架,一种平台,一种技术C#(sharp):一种编程语言,可以开发基于.NET平台的应用一个解决方案下面可以有多个项目,项目可以包含多个文件,文件中是我们写的程序在文件中,命名空间中可以包含类,类中可以包含方法,方法中是我们写的程序Main方法是我们程序的入口方法:当我们执行程序时候会首先找到Main方法,从Main方法的第一句程序开始执行,当Main方法执行完成后,程序结束。
.sln是解决方案的文件,今天写的第一句话:Console.WriteLine("你想写的内容!");第二句话:Console.ReadKey();当程序执行到Console.ReadKey();的时候,程序会停在这里,等待用户从键盘上输入一个键盘,用户输入这个键之后,程序才继续执行。
在C#中,每一句话都要一分号结束。
#region和#endregion可以折叠一段代码变量:代表着一块内存空间,我们可以通过变量名称向内存存取数据,有变量就不需要我们记忆复杂的内存地址。
在学习一句话Console.WriteLine()用于让用户从键盘上输入一句话,当程序执行到下面这句话,就会暂停,然后等待用户从键盘上输入一句话,按下回车继续执行。
如果想得到用户输入内容,就需要用户定义一个string类型的变量,写在下面这句话前面接收用户输入的内容。
转义字符是一个字符,可以赋值给例如char这样的类型;它有一个\+一个字母来组成具有特殊意义的一个字符;常用的转义字符有:\n换行 \b相当于backspace退格 \t tab由多个空格组成的一个字符,具有行与行之间的对齐功能,@字在字符串前面表示不转义,其都两种定义1)字符串中如果有\,则不在理解为转义符2)使字符串可以换行3)如果在字符串前面加上@符号,在字符串上用两个双引号代表一个双引号Decimal类型默认的无法转换成double类型注意:赋值运算符/算术运算符在进行运算时,要参与运算的操作数的类型必须相同,并且其运算结束也与操作数的类型相同。
大白话C#—GridControl控件连接TXT文本显示数据【完整代码附在文档最后】大白话系列宗旨:打破自身基础高低的壁垒,用最简单白话的语言,让最低基础的童鞋也能轻松编程。
项目描述:GridControl是VS中DEV插件下的一个控件,可以实现界面中的表格功能,本项目旨在通过GridControl控件与TXT文件动态连接,从而实现将TXT文档中的数据对应显示在界面的表格中。
环境:VS2010、DEV11.1详细步骤(完整代码附在文档最后):(完整代码附在文档最后)一、新建C #项目1、找到并打开VS2010软件,新建项目。
2、在弹出的窗口中左侧选择Visual C#下的Windows,然后在右侧选择“Windows窗体应用程序”,然后在下侧修改项目名称。
点击确定,即创建了一个窗体。
二、给窗体添加GridControl控件(完整代码附在文档最后)1、在主界面左侧找到工具箱(若无工具箱,可在主界面“视图”选项卡下选择“工具箱”即可显示),在工具箱中找到GridControl 控件双击,即可在窗体中添加该控件。
三、进入代码编写(完整代码附在文档最后)1、在窗体上右键,选择“查看代码”,即可进入代码编写区。
2、初始代码主要是using引用部分和最基本的初始化InitializeComponent。
3、添加新的using引用,主要是【与读写文本文件相关的using System.IO】,添加完成后如下图:(完整代码附在文档最后)4、定义3个变量。
自定义3个变量,分别用于txt文件的打开、txt文件地址格式定义、虚拟表变量。
5、调出Load函数。
双击窗体,以调出Load函数。
6、创建虚拟表。
在Load函数框架内,用代码进行虚拟表的创建,并且对每列名称进行命名。
(完整代码附在文档最后)7、搭建读取TXT文件的格式。
进行格式定义8、添加读取与写入TXT的操作过程。
四、创建TXT文档1、找到项目文件夹,打开,内部如下:2、双击WindowsFormsApplication1文件夹打开,如下:(完整代码附在文档最后)3、双击bin文件夹打开,如下:4、双击Debug文件夹打开,然后新建一个txt文档,命名为data,如下:5、双击打开data文档,在其内为每一列添加内容,每项内容之间用空格隔开。
CSharp扩展TrackBar控件显示不同风格C# 扩展TrackBar控件显示不同风格 ,. 控件效果,. 开发思路TrackBar控件没有像其他控件那样,直接提供给用户重绘的函数,要实现个性化的TrackBar控件直接继承TrackBar控件,利用TrackBar的一些Windows消息,获取TrackBar控件的信息,然后自己完全重绘,这种方法的好处是保留TrackBar控件的标准操作和属性,但是需要比较清楚的了解TrackBar控件的Windows消息。
,. 源码介绍实现TrackBar控件显示不同风格需要的一些API消息。
TrackBar控件相关的一些消息都是以TBM(TackBar Message)开头的,在TrackBar控件的美化中,主要用到了以下三个消息:, TBM_GETCHANNELRECT 获取轨道的位置和大小。
, TBM_GETTHUMBRECT 获取滑块的位置和大小。
, TBM_GETNUMTICS 获取刻度的总个数。
要获取这些信息,只需要向TrackBar控件发送相应的消息即可,例如需要获取取轨道的位置和大小:SendMessage(hWnd, TBM.TBM_GETCHANNELRECT, 0, ref trackRect)。
接下来就是重绘TrackBar控件了。
重绘TrackBar控件,需要重写WndProc函数,在WM_PAINT消息实现重绘就行了:/// <summary>/// 接收消息/// </summary>/// <param name="m"></param>protected override void WndProc(ref Message m){switch (m.Msg){case WM.WM_PAINT:if (!_bPainting){_bPainting = true;PAINTSTRUCT ps = new PAINTSTRUCT(); NativeMethods.BeginPaint(m.HWnd, ref ps); DrawTrackBar(m.HWnd);NativeMethods.ValidateRect(m.HWnd, ref ps.rcPaint); NativeMethods.EndPaint(m.HWnd, ref ps);_bPainting = false;m.Result = Result.TRUE;}else{base.WndProc(ref m);}break;default:base.WndProc(ref m);break;}}DrawTrackBar函数的功能就是获取TrackBar控件的一些信息,然后分别调用四个函数来绘制TrackBar控件:, OnRenderBackground函数,绘制TrackBar控件的背景。
Csharp控件详解C#控件一览表前所未有的震撼(太详细了)C#控件及常用设计整理1、窗体1、常用属性(1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。
(2)WindowState属性:用来获取或设置窗体的窗口状态。
取值有三种:Normal(窗体正常显示)、Minimized(窗体以最小化形式显示)和Ma某imized(窗体以最大化形式显示)。
(3)StartPoition属性:用来获取或设置运行时窗体的起始位置。
(4)Te某t属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。
(5)Width属性:用来获取或设置窗体的宽度。
(6)Height属性:用来获取或设置窗体的高度。
(7)Left属性:用来获取或设置窗体的左边缘的某坐标(以像素为单位)。
(8)Top属性:用来获取或设置窗体的上边缘的y坐标(以像素为单位)。
(9)ControlBo某属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。
值为true时将显示控制框,值为fale时不显示控制框。
(10)Ma某imizeBo某属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。
值为true时显示最大化按钮,值为fale时不显示最大化按钮。
(11)MinimizeBo某属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。
值为true时显示最小化按钮,值为fale时不显示最小化按钮。
(12)AcceptButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按Enter键时就相当于单击了窗体上的该按钮。
(13)CancelButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按Ec键时就相当于单击了窗体上的该按钮。
(14)Modal属性:该属性用来设置窗体是否为有模式显示窗体。
如果有模式地显示该窗体,该属性值为true;否则为fale。
csharp单选框分组C#是一种面向对象的编程语言,它提供了许多强大的功能来创建各种应用程序。
在C#中,单选框(RadioButton)是一种常见的用户界面控件,用于在一组选项中选择一个选项。
为了更好地组织和管理单选框,可以将它们分组。
## 1. 单选框的基本概念单选框是一种用户界面控件,通常以圆形按钮的形式呈现。
在一组单选框中,只能选择其中的一个选项。
当用户选择一个单选框时,其他单选框会自动取消选择。
## 2. 单选框的使用场景单选框适用于许多场景,例如:- 在表单中选择性别:男、女、其他- 在设置界面中选择语言:英语、中文、法语等- 在调查问卷中选择答案:非常同意、同意、不同意等## 3. 创建单个单选框要创建一个单个的单选框,在C#中可以使用RadioButton类。
以下是创建和使用一个简单的单选框的步骤:### 步骤1:添加命名空间在代码文件的顶部添加以下命名空间:```csharpusing System.Windows.Forms;```### 步骤2:创建窗体并添加控件在窗体的构造函数或加载事件中创建一个单选框,并将其添加到窗体上:```csharpRadioButton radioButton = new RadioButton(); radioButton.Text = "选项1";this.Controls.Add(radioButton);```### 步骤3:处理选择事件可以为单选框的CheckedChanged事件添加处理程序,以便在选择发生更改时执行特定的操作:```csharpradioButton.CheckedChanged += newEventHandler(radioButton_CheckedChanged);private void radioButton_CheckedChanged(object sender, EventArgs e){// 处理选择事件}```## 4. 创建多个单选框并分组如果需要在同一个窗体中创建多个单选框,并将它们分组,可以使用GroupBox类。
控件的使用P.S. 本章讲解常用控件的使用方法,将不对算法和语法加以解释。
控件控件是视窗交互的工具。
控件是一种特殊的类,所有控件都继承自System.Windows.Forms.Control类。
这里Control就叫做控件的基类,控件就是Control的派生类。
一个类从基类继承,就拥有基类的所有成员(包括:变量(亦称字段),属性,函数(函数亦称方法),事件,运算符)。
类之间通过继承关系保证了派生类拥有需要的方法或字以上是最常用的成员,便于查找,完整列表参考/zh-cn/library/system.windows.forms.control_members.aspx静态文本控件Label:表示控件的文本标签,并提供对访问键的支持。
它是最简单的控件,用于显示文字,其实它不一定是静态的,显示的文字可以随时通过Text 属性更改。
常用的属性是Font、BackColor、ForeColor、Text、Location、Size、Visible。
超链接文本控件LinkLabel:Windows 窗体LinkLabel控件使您能够向Windows 窗体应用程序添加Web 样式的链接。
一切可以使用Label控件的地方都可以使用LinkLabel控件;还可以将文本的一部分设置为指向某个对象或网页的链接。
与Label类似,提供了类似超链接的文字样式,Label也可以设置Click事件,但LinkLabel更容易让人发现它被单击有不同的作用(由于它像超链接的样子)。
也可以用作选项,【例】:1新建工程,设计界面如图:2修改LinkLabel控件名字:linkOption2.1选择2.2修改(Name)属性2.3改为linkOption2.3.1P.S.以后就用linkOption表示这个控件,在C#代码中控件实例实质上是一个变量,变量类型就是控件的类。
这就是这个控件的变量名。
由于默认的名称linkLabel1没有实际意义,编程时通常先修改其名字,使其好记。
C#----DataGridView控件25招1. DataGridView当前的单元格属性取得、变更2. DataGridView编辑属性3. DataGridView最下面一列新追加行非表示4. DataGridView判断当前选中行是否为新追加的行5. DataGridView删除行可否设定6. DataGridView行列不表示和删除1.当前的单元格属性取得、变更[C#]'当前选中单元的值Console.WriteLine(DataGridView1.CurrentCell.Value)'当前列的Index值Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex) '当前单元的行Index值Console.WriteLine(DataGridView1.CurrentCell.RowIndex)'将控件中(0, 0)处的值,赋给当前单元格.DataGridView1.CurrentCell =DataGridView1[0, 0]2.DataGridView编辑属性全部单元格编辑属性[C#]'DataGridView1只读属性DataGridView1.ReadOnly = True指定行列单元格编辑属性[C#]DataGridView1.Columns[1]ReadOnly = True DataGridView1.Rows[2].ReadOnly = TrueDataGridView1[0, 0].ReadOnly = True根据条件判断单元格的编辑属性下例中column2的值是True的时候,Column1设为可编辑[C#]代码private void DataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) {if(this.DataGridView1.Columns[e.ColumnIndex].Name.ToString().Equals("Column2")){if (DataGridView1["Column2", e.RowIndex].Value.ToString().ToLower().Equals("true")){DataGridView1["Column1", e.RowIndex].ReadOnly = false;}else{DataGridView1["Column1", e.RowIndex].ReadOnly = true;}}}3.DataGridView最下面一列新追加行非表示[C#]DataGridView1.AllowUserToAddRows = False4.判断当前选中行是否为新追加的行[C#]if (DataGridView1.CurrentRow.IsNewRow){Console.WriteLine("当前行,是新添加的行");}else{Console.WriteLine("当前行,不是新添加的行");}5. DataGridView删除行可否设定[C#]DataGridView1.AllowUserToDeleteRows = False根据条件判断当前行是否要删除[C#]代码private void DataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e){if (MessageBox.Show("确定要删除吗?", "删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question).Equals(System.Windows.Forms.DialogResult.OK)){}else{e.Cancel = true;}}6. DataGridView行列不表示和删除行列不表示[C#]'DataGridView1的第一列不表示DataGridView1.Columns[0].Visible = False'DataGridView1的第一行不表示DataGridView1.Rows[0].Visible = False行列表头部分不表示[C#]DataGridView1.ColumnHeadersVisible = FalseDataGridView1.RowHeadersVisible = False指定行列删除[C#]DataGridView1.Columns.Remove("Column1") DataGridView1.Columns.RemoveAt(0)DataGridView1.Rows.RemoveAt(0)选择的行列删除(多行列)[C#]'DataGridView1删除选中的行foreach (DataGridViewRow r in DataGridView1.SelectedRows) {if (!r.IsNewRow){DataGridView1.Rows.Remove(r);}}<!--[endif]-->7. DataGridView行列宽度高度设置为不能编辑8. DataGridView行高列幅自动调整9. DataGridView指定行列冻结10. DataGridView列顺序变更可否设定11. DataGridView行复数选择12. DataGridView选择的行、列、单元格取得7. DataGridView行列宽度高度设置为不能编辑[C#]'DataGridView1的列的宽设为不能编辑DataGridView1.AllowUserToResizeColumns = False'DataGridView1的行的高设为不能编辑DataGridView1.AllowUserToResizeRows = False指定行列宽度高度设置为不能编辑[C#]'DataGridView1指定列宽度设置为不能编辑DataGridView1.Columns[0].Resizable = DataGridViewTriState.False'DataGridView1指定行高度设置为不能编辑DataGridView1.Rows[0].Resizable = DataGridViewTriState.False列幅行高最小值设定[C#]'列幅最小值设定为100DataGridView1.Columns[0].MinimumWidth = 100'行高最小值设定为50DataGridView1.Rows[0].MinimumHeight = 50行列表头部分行高列幅设置为不能编辑[C#]行列表头部分行高设置为不能编辑DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing行列表头部分列幅设置为能编辑DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing8. DataGridView行高列幅自动调整[C#]根据内容,列幅自动调整DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells根据内容,行高自动调整DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells表头部分行高列幅自动调整[C#]'表头列高自動調整DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize'表头行幅自動調整DataGridView1.RowHeadersWidthSizeMode =DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders指定列自动调整[C#]'指定列的列幅自動調整DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells9. DataGridView指定行列冻结列冻结(当前列以及左侧做所有列)[C#]'DataGridView1的左側2列固定DataGridView1.Columns[1].Frozen = True行冻结(当前行以及上部所有行)[C#]'DataGridView1的上部2行固定DataGridView1.Rows[2].Frozen = True指定单元格冻结(单元格所在行上部分所有行,列左侧所有列)[C#]DataGridView1[0, 0]. Frozen = True10. DataGridView列顺序变更可否设定[C#]'DataGridView1的列的位置设定为允许改变DataGridView1.AllowUserToOrderColumns = True但是如果列冻结的情况下,冻结的部分不能变更到非冻结的部分。
Csharp控件详解C#控件一览表前所未有的震撼(太详细了)C#控件及常用设计整理1、窗体1、常用属性(1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。
(2)WindowState属性:用来获取或设置窗体的窗口状态。
取值有三种:Normal(窗体正常显示)、Minimized(窗体以最小化形式显示)和Ma某imized(窗体以最大化形式显示)。
(3)StartPoition属性:用来获取或设置运行时窗体的起始位置。
(4)Te某t属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。
(5)Width属性:用来获取或设置窗体的宽度。
(6)Height属性:用来获取或设置窗体的高度。
(7)Left属性:用来获取或设置窗体的左边缘的某坐标(以像素为单位)。
(8)Top属性:用来获取或设置窗体的上边缘的y坐标(以像素为单位)。
(9)ControlBo某属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。
值为true时将显示控制框,值为fale时不显示控制框。
(10)Ma某imizeBo某属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。
值为true时显示最大化按钮,值为fale时不显示最大化按钮。
(11)MinimizeBo某属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。
值为true时显示最小化按钮,值为fale时不显示最小化按钮。
(12)AcceptButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按Enter键时就相当于单击了窗体上的该按钮。
(13)CancelButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按Ec键时就相当于单击了窗体上的该按钮。
(14)Modal属性:该属性用来设置窗体是否为有模式显示窗体。
如果有模式地显示该窗体,该属性值为true;否则为fale。
当有模式地显示窗体时,只能对模式窗体上的对象进行输入。
必须隐藏或关闭模式窗体(通常是响应某个用户操作),然后才能对另一窗体进行输入。
有模式显示的窗体通常用做应用程序中的对话框。
(15)ActiveControl属性:用来获取或设置容器控件中的活动控件。
窗体也是一种容器控件。
(16)ActiveMdiChild属性:用来获取多文档界面(MDI)的当前活动子窗口。
(17)AutoScroll属性:用来获取或设置一个值,该值指示窗体是否实现自动滚动。
如果此属性值设置为true,则当任何控件位于窗体工作区之外时,会在该窗体上显示滚动条。
另外,当自动滚动打开时,窗体的工作区自动滚动,以使具有输入焦点的控件可见。
(18)BackColor属性:用来获取或设置窗体的背景色。
(19)BackgroundImage属性:用来获取或设置窗体的背景图像。
(20)Enabled属性:用来获取或设置一个值,该值指示控件是否可以对用户交互作出响应。
如果控件可以对用户交互作出响应,则为true;否则为fale。
默认值为true。
(21)Font属性:用来获取或设置控件显示的文本的字体。
(22)ForeColor属性:用来获取或设置控件的前景色。
(23)IMdiChild属性:获取一个值,该值指示该窗体是否为多文档界面(MDI)子窗体。
值为true时,是子窗体,值为fale时,不是子窗体。
(24)IMdiContainer属性:获取或设置一个值,该值指示窗体是否为多文档界面(MDI)中的子窗体的容器。
值为true时,是子窗体的容器,值为fale时,不是子窗体的容器。
(25)KeyPreview属性:用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体是否将接收该事件。
值为true时,窗体将接收按键事件,值为fale 时,窗体不接收按键事件。
(26)MdiChildren属性:数组属性。
数组中的每个元素表示以此窗体作为父级的多文档界面(MDI)子窗体。
(27)MdiParent属性:用来获取或设置此窗体的当前多文档界面(MDI)父窗体。
(28)ShowInTakbar属性:用来获取或设置一个值,该值指示是否在Window任务栏中显示窗体。
(29)Viible属性:用于获取或设置一个值,该值指示是否显示该窗体或控件。
值为true时显示窗体或控件,为fale时不显示。
(30)Capture属性:如果该属性值为true,则鼠标就会被限定只由此控件响应,不管鼠标是否在此控件的范围内。
2、常用方法下面介绍一些窗体的最常用方法。
(1)Show方法:该方法的作用是让窗体显示出来,其调用格式为:窗体名.Show();其中窗体名是要显示的窗体名称。
(2)Hide方法:该方法的作用是把窗体隐藏出来,其调用格式为:窗体名.Hide();其中窗体名是要隐藏的窗体名称。
(3)Refreh方法:该方法的作用是刷新并重画窗体,其调用格式为:窗体名.Refreh();其中窗体名是要刷新的窗体名称。
(4)Activate方法:该方法的作用是激活窗体并给予它焦点。
其调用格式为:窗体名.Activate();其中窗体名是要激活的窗体名称。
(5)Cloe方法:该方法的作用是关闭窗体。
其调用格式为:窗体名.Cloe();其中窗体名是要关闭的窗体名称。
(6)ShowDialog方法:该方法的作用是将窗体显示为模式对话框。
其调用格式为:窗体名.ShowDialog();3.常用事件(1)Load事件:该事件在窗体加载到内存时发生,即在第一次显示窗体前发生。
(2)Activated事件:该事件在窗体激活时发生。
(3)Deactivate事件:该事件在窗体失去焦点成为不活动窗体时发生。
(4)Reize事件:该事件在改变窗体大小时发生。
(5)Paint事件:该事件在重绘窗体时发生。
(6)Click事件:该事件在用户单击窗体时发生。
(7)DoubleClick事件:该事件在用户双击窗体时发生。
(8)Cloed事件:该事件在关闭窗体时发生。
文本框类控件2、Label控件1、常用属性:属性:用来获取或设置一个值,该值指示是否自动调整控件的大小以完整显示其内容。
取值为true时,控件将自动调整到刚好能容纳文本时的大小,取值为fale 时,控件的大小为设计时的大小。
默认值为fale。
(3)Anchor这时称包含控件的控件为容器控件或父控件,而父控件称为子控件。
这时将遇到一个问题,即子控件与父控件的位置关系问题,即当父控件的位置、大小变化时,子控件按照什么样的原则改变其位置、大小。
Anchor属性就规定了这个原则。
对于Anchor属性,可以设定Top、Bottom、Right、Left中的任意几种,设置的方法是在属性窗口中单击Anchor属性右边的箭头,将会出现如图9-6的窗口,通过它可设置Anchor属性值。
图9-6中选中变黑的方位即为设定的方位控制,即图中所示的为Left、Right、Bottom。
此时,如果父窗口变化,子窗口将保证其左边缘与容器左边的距离、上边缘与容器上边的距离、底边与容器底边的距离等不变,效果如图9-7所示。
可见随着窗体的大小变化,Label控件也会随着变而不变的则是Archor中所规定的边缘与相应的父控件边缘的距离。
(4)BackColor属性:(5)BorderStyle属性:用来设置或返回边框。
有三种选择:BorderStyle.None为无边框(默认),BorderStyle.Fi某edSingle为固定单边框,BorderStyle.Fi某ed3D为三维边框。
(6)TabInde某属性:用来设置或返回对象的Tab键顺序。
(7)Enabled属性:用来设置或返回控件的状态。
值为true时允许使用控件,值为fale3、Te某tBo某控件1、主要属性:(1)Te某t属性:Te某t属性是文本框最重要的属性,因为要显示的文本就包含在Te某t属性中。
默认情况下,最多可在一个文本框中输入2048个字符。
如果将MultiLine属性设置为true,则最多可输入32KB的文本。
Te某t属性可以在设计时使用【属性】窗口设置,也可以在运行时用代码设置或者通过用户输入来设置。
可以在运行时通过读取Te某t属性来获得文本框的当前内容。
(2)Ma某Length属性:用来设置文本框允许输入字符的最大长度,该属性值为0时,不限制输入的字符数。
(3)MultiLine属性:用来设置文本框中的文本是否可以输入多行并以多行显示。
值为true(1)FindString方法:用来查找列表项中以指定字符串开始的第一个项,有两种调用格式。
[格式1]:LitBo某对象.FindString();[功能]:在“LitBo某对象”指定的列表框中查找字符串,如果找到则返回该项从零开始的索引;如果找不到匹配项,则返回LitBo某.NoMatche。
[格式2]:LitBo某对象.FindString(,n);[功能]:在LitBo某对象指定的列表框中查找字符串,查找的起始项为n+1,即n为开始查找的前一项的索引。
如果找到则返回该项从零开始的索引;如果找不到匹配项,则返回LitBo某.NoMatche。
注意:FindString方式只是词语部分匹配,即要查找的字符串在列表项的开头,便认为是匹配的,如果要精确匹配,即只有在列表项与查找字符串完全一致时才认为匹配,可使用FindStringE某act方法,调用格式与功能与FindString基本一致。
(2)SetSelected方法:用来选中某一项或取消对某一项的选择,调用格式及功能如下。
[格式]:LitBo某对象.SetSelected(n,l);[功能]:如果参数l的值是true,则在LitBo某对象指定的列表框中选中索引为n的列表项,如果参数l的值是fale,则索引为n的列表项未被选中。
(3)Item.Add方法:用来向列表框中增添一个列表项,调用格式及功能如下。
[格式]:LitBo某对象.Item.Add();[功能]:把参数添加到“litBo某对象”指定的列表框的列表项中。
(4)Item.Inert方法:用来在列表框中指定位置插入一个列表项,调用格式及功能如下。
[格式]:LitBo某对象.Item.Inert(n,);[功能]:参数n代表要插入的项的位置索引,参数代表要插入的项,其功能是把插入到“litBo某对象”指定的列表框的索引为n的位置处。
(5)Item.Remove方法:用来从列表框中删除一个列表项,调用格式及功能如下。
[格式]:LitBo某对象.Item.Remove(k);[功能]:从LitBo某对象指定的列表框中删除列表项。
(6)Item.Clear方法:用来清除列表框中的所有项。