首页 > 技术文章 > C# 常用控件的一些属性及方法

luciakally 2015-07-14 08:54 原文

在项目进行中,整理的一些常用控件的属性和方法。

 

Form窗体

ControlBox:窗体的标题栏中是否显示控制框。

MaximizeBox:窗体的标题栏中是否显示控制框。

AcceptButton:值是一个按钮的名称,当按Enter 键时就相当于单击了窗体上的该按钮。

CancelButton:值是一个按钮的名称,当按Enter 键时就相当于单击了窗体上的该按钮。

AutoScroll:窗体是否实现自动滚动。如果为true,则当任何控件位于窗体工作区之外时,会在该窗体上显示滚动条。

KeyPreview:指示在将按键事件传递到具有焦点的控件前,窗体是否将接收该事件。值为true 时,窗体将接收按键事件;值为false 时,窗体不接收按键事件。

Refresh():刷新并重画窗体。

Activate():激活窗体并给予它焦点。

Activated:在窗体激活时发生。

Deactivate:在窗体失去焦点成为不活动窗体时发生。

Resize:改变窗体大小时发生。

Paint:重绘窗体时发生。

Closed:关闭窗体时发生。

 

多文档界面Mdi (Multiple Document Interface) 

  1. 创建父窗体 设置IsMdiContainer属性为true
  2. 创建子窗体 代码如下:
Form frm = new Form();
frm.MdiParent = this;
frm.Show(); 

 

无窗体的窗体移动

//using System.Runtime.InteropServices;

[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);

//常量
public const int WM_SYSCOMMAND = 0x0112;
//窗体移动
public const int SC_MOVE = 0xF010;
public const int HTCAPTION = 0x0002;
//改变窗体大小
public const int WMSZ_LEFT = 0xF001;
public const int WMSZ_RIGHT = 0xF002;
public const int WMSZ_TOP = 0xF003;
public const int WMSZ_TOPLEFT = 0xF004;
public const int WMSZ_TOPRIGHT = 0xF005;
public const int WMSZ_BOTTOM = 0xF006;
public const int WMSZ_BOTTOMLEFT = 0xF007;
public const int WMSZ_BOTTOMRIGHT = 0xF008;

public void MouseDownMove(object sender, MouseEventArgs e)
{
    ReleaseCapture();
    SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
}

  使用方法:  

public frmMain()
{
    InitializeComponent();
    this.MouseDown += MouseDownMove;
    //this.ListBox.MouseDown += MouseDownMove;
}

 

TextBox 文本框

MaxLength:文本框允许输入字符的最大长度。该属性值为0时,不限制输入的字符数。

SelectionLength:文本框中选定的字符数。只能在代码中使用,值为0 时,表示未选中任何字符。

SelectionStart:文本框中选定的文本起始点。只能在代码中使用,第一个字符的位置为0,第二个字符的位置为1,依此类推。

SelectedText:一个字符串,该字符串指示控件中当前选定的文本。只能在代码中使用。

Modified:自创建文本框控件或上次设置该控件的内容后,用户是否修改了该控件的内容。 值为true 表示修改过,值为false 表示没有修改过。

TextLength:控件中文本的长度。

AppendText(string):把一个字符串添加到文件框中文本的后面。

Clear():清除控件中所有文本。

Copy():将文本框中的当前选定内容复制到剪贴板上。

Cut():将文本框中的当前选定内容移动到剪贴板上。

Paste():用剪贴板的内容替换文本框中的当前选定内容。

Undo():撤销文本框中的上一个编辑操作。

ClearUndo():从该文本框的撤销缓冲区中清除关于最近操作的信息,根据应用程序的状态,可以使用此方法防止重复执行撤销操作。

Select(int, int):用来在文本框中设置选定文本。

SelectAll():用来选定文本框中的所有文本。

GotFocus :该事件在文本框接收焦点时发生。 

LostFocus :该事件在文本框失去焦点时发生。 

// 设置光标位置 到文本最后
this.tbTestDialogue.Focus();
this.tbTestDialogue.SelectionStart = this.tbTestDialogue.TextLength;
//this.tbTestDialogue.SelectionLength = this.tbTestDialogue.TextLength;
// 随文本滚动 
this.tbTestDialogue.ScrollToCaret(); 

 

RichTextBox

一种既可以输入文本、又可以编辑文本的文字处理控件。

与TextBox 控件相比, RichTextBox控件的文字处理功能更加丰富,不仅可以设定文字的颜色、字体,还具有字符串检索功能。

另外, RichTextBox控件还可以打开、编辑和存储.rtf 格式文件、ASCII 文本格式文件及Unicode 编码格式的文件。

TextBox 控件所具有的属性,RichTextBox 控件基本上都具有,除此之外,该控件还具有一些其他属性。

 

RightMargin:右侧空白的大小,单位是像素。如希望右侧空白为50 像素,可使用如下语句: RichTextBox1.RightMargin=RichTextBox1.Width-50;

Rtf:获取或设置RichTextBox 控件中的文本,包括所有RTF 格式代码。

  可以使用此属性将RTF 格式文本放到控件中以进行显示,或提取控件中的RTF 格式文本。此属性通常用于在RichTextBox 控件和其他RTF 源(如MicrosoftWord 或Windows 写字板)之间交换信息。

SelectedRtf:获取或设置控件中当前选定的RTF 格式的格式文本。

  此属性使用户得以获取控件中的选定文本,包括RTF 格式代码。如果当前未选定任何文本,给该属性赋值将把所赋的文本插入到插入点处。如果选定了文本,则给该属性所赋的文本值将替换掉选定文本。

SelectionColor:当前选定文本或插入点处的文本颜色。

SelectionFont:当前选定文本或插入点处的字体。

Redo():重做上次被撤销的操作。

Find(string):从RichTextBox 控件中查找指定的字符串。

SaveFile(string):将RichTextBox 中的信息保存到指定的文件中。

LoadFile(string):将文本文件、RTF 文件装入RichTextBox 控件。  

 

Button 按钮

如果按钮具有焦点,就可以使用鼠标左键、Enter 键或空格键触发该按钮的Click 事件。

通过设置窗体的AcceptButton或CancelButton 属性,无论该按钮是否有焦点,都可以使用户通过按Enter 或Esc 键来触发按钮的Click事件。

一般不使用Button 控件的方法。 

DialogResult:窗体是使用ShowDialog() 方法显示时,可以使用该属性设置当用户按了该按钮后,ShowDialog 方法的返回值(窗体将会被关闭)。值有:OK、Cancel、Abort、Retry、Ignore、Yes、No 等。 

 

ListBox 列表框 

  MultiColumn:是否支持多列。

  ColumnWidth:多列ListBox 控件中列的宽度。

  Sorted:列表项是否按字母顺序排序。

  ItemsCount:列表项的数目。

  FindString(string):查找列表项中以指定字符串开始的第一个项。

      只是词语部分匹配,即要查找的字符串在列表项的开头,便认为是匹配的,如果要精确匹配,即只有在列表项与查找字符串完全一致时才认为匹配,可使用FindStringExact 方法,调用格式与功能与FindString 基本一致。

  SetSelected(int, bool):某一项或取消对某一项的选择。(int指示索引位置)

  Items.Insert(int, string): 在列表框中指定位置插入一个列表项。(int指示索引位置)

  BeginUpdate()和EndUpdate():这两个方法的作用是保证使用Items.Add 方法向列表框中添加列表项时,不重绘列表框。

      即在向列表框添加项之前,调用BeginUpdate 方法,以防止每次向列表框中添加项时都重新绘制ListBox 控件。

      完成向列表框中添加项的任务后,再调用EndUpdate 方法使ListBox控件重新绘制。当向列表框中添加大量的列表项时,使用这种方法添加项可以防止在绘制ListBox 时的闪烁现象。

public void AddToMyListBox()
{
        listBox1.BeginUpdate();
        for(intx=1;x<5000;x++)
        {
                listBox1.Items.Add("Item"+x.ToString());
        }
        listBox1.EndUpdate(); 
}

 

ProgressBar进度条

  Value:进度条的当前位置。

  Step:决定每次调用PerformStep 方法时, Value 属性增加的幅度。

    例如,如果要复制一组文件,则可将Step 属性的值设置为1,并将Maximum 属性的值设置为要复制的文件总数。在复制每个文件时,可以调用PerformStep() 方法按Step 属性的值增加进度栏。

  PerformStep():按step 属性值来增加进度条的Value 属性值。 

TrackBar跟踪条

Orientation:跟踪条是在水平方向还是在垂直方向。

LargeChange:当滑块长距离移动时对Value属性中加上或减去的值。

SmallChange:当滑块短距离移动时对Value 属性中加上或减去的值。

TickFrequency:绘制的刻度之间的增量。

TickStyle:如何显示跟踪条上的刻度线。 

 

HScrollBar和VScrollBar

SmallChange 属性用于控制当鼠标单击滚动条两边的箭头时,滑块滚动的值,即Value 属性增加或减小的值。这两个控件主要用于在应用程序或控件中水平或垂直滚动,以方便在较长的列表中或大量信息中转移。

LargeChange 属性则控制当用鼠标直接单击滚动条时滑块滚动的值。

当用户按下PageUp 键或PageDown 键或者在滑块的任何一边单击滚动条轨迹时,Value 属性将按照LargeChange 属性中设置的值进行增加或减小。 

 

对话框

//打开文件对话框
private void openFileDialogBtn_Click(object sender, EventArgs e) 
{
             OpenFileDialog opd = new OpenFileDialog();           
             opd.InitialDirectory = @"D:\"; //对话框初始路径
             opd.Filter = "C#文件(*.cs)|*.cs|文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"; 
             opd.FilterIndex = 2;  //默认就选择在文本文件(*.txt)过滤条件
             opd.DereferenceLinks = false;  //返回快捷方式的路径而不是快捷方式映射的文件的路径   
             opd.Title = "打开对话框";   
             opd.RestoreDirectory = true;  //每次打开都回到InitialDirectory设置的初始路径     
             opd.ShowHelp = true; //对话框多了个"帮助"按钮   
             opd.ShowReadOnly = true; //对话框多了"只读打开"的复选框   
             opd.ReadOnlyChecked = true; //默认"只读打开"复选框勾选   
             // opd.HelpRequest +=new EventHandler(opd_HelpRequest); //注册帮助按钮的事件
             // opd.FileOk += new CancelEventHandler(opd_FileOk);  //效果等同于下面
             if(opd.ShowDialog() == DialogResult.OK)
             { 
                  string filePath = opd.FileName;   //文件路径
                  string fileName = opd.SafeFileName;  //文件名 
             } 
}      

private void opd_FileOk(object sender, CancelEventArgs e) 
{ 
              //do something  
}     

/// <summary> 
/// 帮助按钮单击事件 
/// </summary> 
/// <param name="sender"></param> 
/// <param name="e"></param> 
private void opd_HelpRequest(object sender, EventArgs e) 
{ 
              MessageBox.Show("这是帮助说明");    
} 
//保存文件对话框
private void saveFileDialogBtn_Click(object sender, EventArgs e) {
       SaveFileDialog sfd
= new SaveFileDialog(); sfd.InitialDirectory = @"D:\"; //对话框初始路径 sfd.FileName = "config.txt"; //默认保存的文件名 sfd.Filter = "C#文件(*.cs)|*.cs|文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"; sfd.FilterIndex = 2; //默认就选择在文本文件(*.txt)过滤条件上 sfd.DefaultExt = ".xml"; //默认保存类型,如果过滤条件选"所有文件(*.*)"且保存名没写后缀,则补充上该默认值 sfd.DereferenceLinks = false; //返回快捷方式的路径而不是快捷方式映射的文件的路径 sfd.Title = "保存对话框"; sfd.RestoreDirectory = true; //每次打开都回到InitialDirectory设置的初始路径 sfd.ShowHelp = true; //对话框多了个"帮助"按钮 // sfd.HelpRequest += new EventHandler(sfd_HelpRequest); //注册帮助按钮的事件 // sfd.FileOk += new CancelEventHandler(sfd_FileOk); //效果等同于下面 if (sfd.ShowDialog() == DialogResult.OK) { string filePath = sfd.FileName; //文件路径 } } private void sfd_FileOk(object sender, CancelEventArgs e) { //do something } /// <summary> /// 帮助按钮单击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void sfd_HelpRequest(object sender, EventArgs e) { MessageBox.Show("这是帮助说明"); }
//打开文件夹对话框
private void folderBrowserDialogBtn_Click(object sender, EventArgs e)  
{  
              FolderBrowserDialog fbd = new FolderBrowserDialog();  
              fbd.RootFolder = Environment.SpecialFolder.Desktop;  //设置默认根目录是桌面 
              fbd.Description = "请选择文件目录:";   //设置对话框说明    
              if (fbd.ShowDialog() == DialogResult.OK)  
              {  
                  string filePath = fbd.SelectedPath;    
              }  
}  

 

推荐阅读