.Net 创建用户界面学习笔记

来源:互联网 发布:mac格式化u盘方案选择 编辑:程序博客网 时间:2024/05/16 16:00

1。 关于 sender

看这个例子

  private void newButton_Click(Object sender, System.EventArgs e)
  {
   Button x=(Button)sender;
   MessageBox.Show ( x.Name);
  }

当我们需要引用事件控件的属性的时候可以通过强制类型转换实现。

2。注册事件

看下面的例子

  private static int addcount=0;
  private void button3_Click(object sender, System.EventArgs e)
  {

   Button  bt=new Button  ();
   bt.Text ="test";
   bt.Left =10;
   bt.Top =addcount*bt.Height ;
   bt.Click +=new EventHandler(this.newButton_Click);
   bt.Name ="lb" + addcount.ToString ();
   this.Controls.Add (bt);
   addcount++;
  }

这段代码动态的生成了一系列按钮,并且为每个按钮注册了统一的事件,注册事件的格式必须为:

对象.事件属性+=new EventHandler(this.一个标准的事件过程);

标准的事件过程参数 :Object sender, System.EventArgs e;

3。程序入口点

  static void Main()
  {
   Application.Run(new Form1( ));
  }

4。控件集合

Add,Remove,RemoveAt 方法 和 Count属性

MyForm.Controls.Add()

5.。菜单

   //运行时创建一个菜单分隔符
   MenuItem myMenuItem;
   myMenuItem=new MenuItem ("-");
   menuItem1.MenuItems.Add(myMenuItem);
   //运行时合并菜单
   menuItem1.MergeMenu (contextMenu1);
   //运行时创建上下文菜单,运用了复制菜单创建
   ContextMenu myEditBoxMenu=new ContextMenu ();
   myEditBoxMenu.MenuItems.Add (menuItem6.CloneMenu ());
   //运行时改变文本框的上下文菜单
   textBox4.ContextMenu =myEditBoxMenu;
   //运行时给已有菜单添加事件
   menuItem20.Click +=new EventHandler(this.end_menu_click);
   //运行时给创建的菜单添加事件
   MenuItem myMenuItem2;
   myMenuItem2=new MenuItem("Created Menu",new EventHandler (end_menu_click));
   contextMenu1.MenuItems.Add (myMenuItem2);

6。CHAR 方法

IsControl
指示指定的 Unicode 字符是否属于控制字符类别。

IsDigit
指示某个 Unicode 字符是否属于十进制数字类别。

IsLetter
指示某个 Unicode 字符是否属于字母类别。

IsLetterOrDigit
指示某个 Unicode 字符是属于字母类别还是属于十进制数字类别。

IsLower
指示某个 Unicode 字符是否属于小写字母类别。

IsNumber
指示某个 Unicode 字符是否属于数字类别。

IsPunctuation
指示某个 Unicode 字符是否属于标点符号类别。

IsSeparator
指示某个 Unicode 字符是否属于分隔符类别。

IsSurrogate
指示某个 Unicode 字符是否属于代理项字符类别。

IsSymbol
指示某个 Unicode 字符是否属于符号字符类别。

IsUpper
指示某个 Unicode 字符是否属于大写字母类别。

IsWhiteSpace
指示某个 Unicode 字符是否属于空白类别。

Parse
将指定字符串的值转换为它的等效 Unicode 字符。

ToLower
将 Unicode 字符的值转换为它的小写等效项。

ToUpper
将 Unicode 字符的值转换为它的大写等效项。

这些方法都是静态方法,用法实例

if (Char.IsDigit  (e.KeyChar)==false )

{

...

}

7。处理焦点以及验证用户输入

使用Validating事件验证用户输入

private void textBox4_Validating(object sender, System.ComponentModel.CancelEventArgs e)
  {
   if (textBox4.Text !="")
   {
    try
    {
     System.Decimal.Parse(textBox4.Text);
     errorProvider1.SetError (textBox4,"");
    }
    catch(Exception err){
     MessageBox.Show ("这个对话框必须输入数字!");

     errorProvider1.SetError (textBox4,"必须为数字");
     //这里有一个使用ErrorProvider的例子
     e.Cancel =true; 
    }
   }
  }