C#基本控件用法.docx
《C#基本控件用法.docx》由会员分享,可在线阅读,更多相关《C#基本控件用法.docx(13页珍藏版)》请在冰豆网上搜索。
C#基本控件用法
作者:
曾立波、陈华生、王俊凡,转载请注明出处。
1Button
用法与DELPHI中的BUTTON的用法相似,要注意的属性如下
BackColor背景颜色
DialogResult点击返回的DialogResult的值(None,OK,Cancel,Abort,Retry,Ignore,Yes,No)
FlatStyle设置按钮的样式
Image添加图片(注意图片的ImageIndex)
AlignImage图片在按钮中的显示位置
TextAlign文字在按钮中的显示位置
Tag可以在按钮中添加对象
事件主要是用Click事件(当BUTTON获得焦点,按Enter时也会触发)
注意:
如果在按钮上单击了鼠标左键,然后把鼠标移动到其他位置,再释放鼠标,将不会引发Click事件
可以在按钮中添加自定义事件
privatevoidbtnSample_Click_111(objectsender,EventArgse)
{
if(senderisButton)
{
MessageBox.Show("thisisbutton");
}
}
调用
btnSample.Click+=btnSample_Click_111;
2CheckBox
用法与DELPHI中CheckBox的用法相似,要注意的属性如下:
CheckState其中有3种状态(Checked,Unchecked,Indeterminate)当状态是Indeterminate时,控件旁边的复选框是灰色的,表示复选框的当前值是无效的
ThreeState是否允许显示CheckState中的Indeterminate状态
CheckState=True时允许存在Indeterminate状态
CheckState=False时不允许存在Indeterminate状态
用户不能把CheckState设置为Indeterminate,但可以在代码中把CheckState设置为Indeterminate
注意的事件
CheckedChangeed当复选框的Checked属性发生改变时,就引发该事件。
(注意:
当ThreeState属性为true时,单击复选框不会改变Checked属性,也就不会引发此事件。
在复选框从Checked变为indeterminate状态时,就会出现这种情况)
CheckedStateChanged当CheckedState属性(Checked,UnChecked这种状态)改变时,引发该事件
3ComboBox
Dock控件的位置控制(Top,Left,Right,Bottom,Fill,None)
DropDownStyle控件的下拉样式(Simple,DropDown,DropDownList)
FlatStyle设置控件的样式
Tag可以绑定对象
Items可以能过Add与Insesrt方法增加到ITEMS(Add添加项到最后一项,Insert方法可以插入到任何位置)
DataSource数据源绑定。
DisplayMember在ComboBox中显示的值(Name)
ValueMember在ComboBox中显示的值对应的隐藏值(ID)
通过DataSource,DisplayMember,ValueMember三个属性可以实现自动把数据集添加到ComboBox中
privatevoidFillComboBox(ComboBoxcbx)
{
stringSQLText=string.Empty;
SQLText="selectdistinctUSER_RIGHT_ID,USER_RIGHT_NAMEfromNT_USER_RIGHT"
+"whereUP_RIGHT_IDisnull";
DBAccessDBQuery=newDBAccess();
DataTableds=newDataTable();
ds=DBQuery.QueryResultDataTable(SQLText);//取得数据到DS中自定义的方法
DataRowdr=ds.NewRow();//新增一条记录
dr["USER_RIGHT_ID"]=0;
dr["USER_RIGHT_NAME"]="";
ds.Rows.InsertAt(dr,0);//插入数据到数据表DS中
cbx.DataSource=null;//清除所有项目
cbx.DataSource=ds;
cbx.DisplayMember="USER_RIGHT_NAME";
cbx.ValueMember="USER_RIGHT_ID";
//定位记录到权限ID=11
cbx.SelectedValue=11;
}
boBox1.Items.Clear();//清除所有选项如绑定数据此方法无效
//应用comboBox1.DataSource=null;
boBox1.Items.Insert(0,"请选择");
boBox1.Items.Insert(1,"a1");
boBox1.Items.Add("a6");
boBox1.Items.Add("a7");
4Label
用法与DELPHI中的Label用法相似,要注意的属性如下:
FlatStyle设置LABEL的显示样式
Image设置图片
ImageList设置图片,通过ImageIndex来设置图片
ImageAlign图片在Label中的显示位置
ContextMenuStrip右键菜单
TextAlignLabel中的文字显示位置
Dock控件的位置设置
5TextBox
用法与Delphi中的Edit控件的用法相似,要注意属性如下
CharacterCasing表示TextBox是否改变输入的文本的大小写。
Lower:
文本框中输入的所有文本都转换为小写
Normal:
不对文本进行任何转换
Upper:
文本框中输入的所有文本都转换为大写
MaxLength指定输入到TextBox中的文本的最大字符长度。
设置为0,表示最大字符长度仅受限于可用的内存
Multiline表示该控件是否是一个多行控件。
如果Multiline属性设置为true,通常也把WordWrap也设置为true
WordWrap指定在多行文本框中,文本是否应自动换行
PasswordChar指定是否用密码字符替换在单行文本框中输入的字符。
如果Multiline属性为true,这个属性就不起作用
ReadOnly表示文本是否为只读
ScrollBars指定是否显示滚动条
SelectedText选择的文本
6DateTimePicker用法
主要是要关注Format属性,如果设置成Custom,则DateTimePicker的日期格式根据CustomFormat的格式定,如yyyy-MM-ddhh:
mm:
ss;
7Panel
用法与Delphi中Panel用法相似应注意的属性如下
ContextMenuStrip右键菜单
BackColor背景颜色
Dock控件的位置控制(Top,Left,Right,Bottom,Fill,None)
8TabControl
用法与Delphi中的PageControl相似,应注意的属性如下
Alignment控制标签在TabControl控件的什么位置显示。
默认的位置为控件的顶部
Appearance控制标签的显示方式。
标签可以显示为一般的按钮或带有平面样式
HotTrack设置为true,则当鼠标指针滑过控件上的标签时,其外观就会改变
Multiline设置为true,就可以有几行标签
TabPages这是控件中的TabPage对象集合。
使用这个集合可以添加和删除TabPage对象
9LisiBox用法
9.1控件用途:
用于显示多个数据,以供选择.
9.2使用效果:
9.3控件主要属性说明和使用:
ContextMenuStrip:
用于绑定右键菜单
DispLayMember:
显示名称
Dock:
设置控件的自适应.
Items:
增加结点listBox1.Items.Add("aa");
DataSource:
用于绑定数据库
listbox1.DataSource=ds.Tables[0].DefaultView;//ds是DATASET
listbox1.DisplayMember="姓名";
listbox1.ValueMember="員工編號";
Sorted:
排序
10ListView用法
10.1控件用途:
控件可以以列表的形式显示数据,也可以以结点的形式,显示数据.
10.2使用效果:
以列表的形式显示:
view属性要设置为Details
以结点的形式显示:
view属性要设置为LargeIcon或者SmallIcon
10.3控件主要属性说明和使用:
CheckBoxes:
把CheckBoxes置为TRUE会出现勾选框.
Dock:
设置控件的自适应.
Columns:
增加列,一般静态加
GridLine:
设置为TRUE显示成格子,否则看不到格子的线.
HideSelection:
设置为False显示查询列
SmallimageList增加一个imageList.通过ImageIndex设置结点的图标
Items控件结点.通过这个属性向控件增加结点.
for(inti=0;i<8;i++)//增加八行
{
listview.Items.Add("数据1"+i.ToString());//增加一行
listview.Items[i].ImageIndex=i+1;//行的第一个结点设置图标
listview.Items[i].SubItems.Add("数据2");//增加行的第二个结点
listview.Items[i].SubItems.Add("数据3");//增加行的第三个结点
如果view属性要设置为Details就有行的概念,如果设置为LargeIcon或者SmallIcon则界面显示就没有行的概念,但数据存储两种都一样.
imageList:
增加一个imageList.通过ImageIndex设置结点的图标
Sorting:
排序
11Treeview用法
11.1控件用途:
树形显示控件,用于表现数据的层次结构.
1.1表现效果
11.2控件主要属性说明和使用:
CheckBoxes:
把CheckBoxes置为TRUE会出现勾选框.
Dock:
设置控件的自适应.
HideSelection:
设置为False显示查询列
imageList增加一个imageList.通过ImageIndex设置结点的图标
Nodes树控件结点.通过这个属性向控件增加结点.
第一层结点:
treeView1.Nodes.Clear();//清除控件结点
//新增一个结点,其中ds.Tables[0].Rows[i][1].ToString()为结点的显示值
RightObjClass1RightObj=newRightObjClass1();//新建对象
TreeNodetn=newTreeNode(ds.Tables[0].Rows[i][1].ToString());
tn.Tag=RightObj;//结点是通过Tag来增加挂对象的,RightObj为对象
tn.ImageIndex=1;//设置结点图标
this.treeView1.Nodes.Add(tn);把结点增加到TreeView里边
第二层结点
//新增一个结点
TreeNodetn2=newTreeNode(ds.Tables[0].Rows[j][1].ToString());
RightObjClass1RightObj1=newRightObjClass1();
tn2.Tag=RightObj1;
tn2.ImageIndex=2;
tn.Nodes.Add(tn2);//把结点挂在第一层结点上
ShowLines显示树前面的连线.
12DataGrid用法
12.1控件用途:
数据的显示控件,以便与从整体来查看数据.可以与DATASET里的数据表和和内存表进行绑定.
12.26.2使用效果:
12.3控件主要属性说明和使用:
AllowSorting:
排序,点击列头,数据会跟据选定列自动排序.
AlternationBackColor:
可以理解为偶数行的行颜色
BackColor:
可以理解为单数行的行颜色
BackgroudColor:
背景颜色,没有加载数据区域的颜色
CaptionText:
DataGrid的总标题,用于描述DataGrid总体情况.
CaptionVisible:
是否显示上面的标题
CaptionBackColor:
标题颜色
ColumnHeadersVisible:
列头是否显示.
ConTextMenuStrip:
关联右键菜单
HeaderBackColor:
列头颜色
RowHearerVisible行头是否可见
DataSource:
用于绑定数据源.
直接与DATASET进行绑定如下
this.dataGrid1.DataSource=ds.Tables[0];
与内存表绑定:
DataTabledt=newDataTable("Table1");
dt.Columns.Add("菜单Id",typeof(decimal));
dt.Columns.Add("菜单名称",typeof(string));
dt.Columns.Add("备注",typeof(string));
RightObjClass1obj=(RightObjClass1)e.Node.Tag;
dt.Rows.Add(obj.SRightId,obj.SRightName,obj.SRemark);//内存表增加列
dataGrid1.DataSource=dt;//绑定
13Dialog用法
13.1控件用途:
包括openDialog,SaveDialog,ColorDialog用法.openDialog打开一个打开文件对话框,用于打开文件.SaveDialog打开一个保存对话框.ColorDialog打开一个颜色选择框.
13.2控件主要属性说明和使用:
ShowDialog:
打开对话框
FileName:
文件全部路径
SafeFileName:
文件名
//openDialog,SaveDialog对话框
if(openFileDialog1.ShowDialog()=DialogResult.ok)
textBox1.Text=openFileDialog1.FileName;
else
textBox1.Text="";
//颜色选择框
//ColorDialogcolorDialog1=newColorDialog();
colorDialog1.FullOpen=true;//是否显示ColorDialog有半部分,运行一下就很了然了
//colorDialog1.CustomColors=color;//设置自定义颜色
DialogResultresult=colorDialog1.ShowDialog();
if(result==DialogResult.OK)//确定事件响应
{
listview.BackColor=colorDialog1.Color;
}
if(result==DialogResult.Cancel)//取消事件响应
{}
14hashTable用法
14.1控件用途:
用于保存数据.主要是把类存放在里面,通过索引值能快速的查找出来.
14.2控件主要属性说明和使用:
引用包:
usingSystem.Collections;
//新建一个Hash表
HashtablehTable=newHashtable();
hTable.Add(RightObj.SRightId,RightObj.SRightName);//增加数据,参数可以是类对象
//Hash表取值,遍历
foreach(DictionaryEntrydeinHtable1)
{
//MessageBox.Show(de.Key.ToString());//de.Key对应于key/value键值对key
ComPid.Items.Add(de.Value.ToString());//de.Key对应于key/value键值对value
}
hTable.Remove("003");//在哈希表中去除keyvalue是"003"键值
hTable.Clear();//清空所有数据
hTable.Contains(key);//通过Key进行查找
15控件PictureBox用法
15.1动态载入文件
//自动伸缩
pictureBox1.SizeMode=PictureBoxSizeMode.StretchImage;
//载入文件
pictureBox1.Load(sFileName);
15.2在pictureBox上画图
privatevoidpictureBox1_Paint(objectsender,PaintEventArgse)
{
Graphicsg=e.Graphics;
g.DrawLine(newPen(Color.Blue,3),newPoint(0,0),newPoint(100,100));
}
如果不在Paint中画图,如果窗体重画,原先画的图将不复存在
16控件MenuTrip用法
MenuTrip是弹出菜单,假设我要按一个button实现弹出菜单,可以使用以下代码
privatevoidbutton1_Click(objectsender,EventArgse)
{
Pointpt=newPoint();
pt=button1.Parent.PointToScreen(button1.Location);
pt.Y=pt.Y+button1.Height;
contextMenuStrip1.Show(pt);
}
17MdiForm的使用方法
要在程序中使用MdiForm,首先主窗体的IsMdiContainer必须设置成true
主窗体显示MDI窗体的代码如下:
CustomCtlFrmtmpFrm=newCustomCtlFrm();
tmpFrm.MdiParent=this;
tmpFrm.Show();
主窗体枚举MDI窗体代码如下:
for(inti=0;i{
FormtmpFrm=this.MdiChildren[i];
}
18List的用法
classCCustom
{
privateint_iCustomId;
publicintiCustomId
{
get{return_iCustomId;}
}
publicstring_sCustomName;
publicstringsCustomName
{
get{return_sCustomName;}
}
publicCCustom(intiID,stringsName)
{
_iCustomId=iID;
_sCustomName=sName;
}
}
ListtmpList=newList();
CCustomvCust=newCCustom(1,"aa");
tmpList.Add(vCust);
vCust=newCCustom(2,"bb");
tmpList.Add(vCust);
vCust=newCCustom(3,"cc");
tmpList.Add(vCust);
vCust=newCCustom(4,"dd");
tmpList.Add(vCust);
索引方法
intiIndex=tmpList.IndexOf(vCust);
删除方法
tmpList.RemoveAt(0);