zoukankan      html  css  js  c++  java
  • 第六讲 使用WinForms进行GUI设计

    *事件驱动
    简单的思路
    用户个人的行为都被封装在很多事件中。
    事件由操作系统来安排顺序执行。

    *事件处理
    事件被事件处理器处理
    一般来说,这些处理器方法的代码是写在可视化界面的后面的。
    .NET自动处理事件并生成一些基础的调用事件处理器的代码。
    通俗讲,鼠标双击控件,写代码的过程。当然你也可以用类封装事件代码。

    事件是通过Delegate(代理)映射给事件处理器的!

    事件处理器参数
    事件处理器有两个参数:
    Sender:表示哪个对象生成了事件。
    EventArgs:另外的特定事件信息(如果需要)。
    private void cmdAdd_Click(object sender,System.EventArgs e){......}

    这里举了个例子:通用文本框验证方法
    检验文本框内容是否包括一个有效的整形数据
    using SWF=System.Windows.Forms;
    public static void IsInteger(object sender,System.ComponentModel.CancelEventArgs e)
    {
     SWF.TextBox txt=(SWF.TextBox) sender;
     try
     {
      int.Parse(txt.Text);
     }
     cactch(FormatException)
      {
       SWF.MessageBox.Show("Please enter a numeric value");
       e.Cancel=true;
      }
     cactch(OverflowException){...}
     cactch(Exception ex){...}
    }

    *你可以“多对一”进行事件处理
    不同的事件可以对应到相同的处理程序。
    你也可以“一对多”进行事件处理
    一个事件触发可以有多个动作(事件处理映射)
    例如:this.cmdButton.Click +=new System.EventHandler(...);
          this.cmdButton.Click -=new System.EventHandler(...);


    *启动Form
    Visual Studio在生成Main代码中自动实例化一个Form的对象。
    *更好的方法是把Main方法移出Form Class
    原因是:
    Main更容易找到(不要成为GUI的一部分)。
    Main很有可能还有其他的职责,这些职责是与GUI没有关系的。
    一般使用App当作类名
    例如:
    using SWF=System.Window.Forms;
    public class App
    {
     [STAThread]
     public static void Main()
     {
      ...//其他一些操作
      SWF.Application.Run(new Form1());
     }
    }

    *WinForms程序设计是一个很大的领域:
    使用控件。
    建立自定义控件。
    多线程。
    MVC(model-view-controller)设计
    ...
    有待以后进一点深入学习!!!


    *数据绑定
    控件可以绑定数据源来获得数据
    控件可以绑定整个集合collections.
    控件可以绑定单个对象属性。
    *数据绑定在.NET中是广泛使用的。
    自动的reads & writes 绑定的数据!

    // bind listBox
    this.lstCustomers.DataSource = Globals.Customers;
    // bind TextBox
    this.txtFirstName.DataBindings.Clear();
    this.txtFirstName.DataBindings.Add("Text", bc, "FirstName");

  • 相关阅读:
    git指令-撤销修改
    git指令-管理修改
    jquery高级
    jquery
    sql的练习题
    git指令-工作区和暂存区
    java-多线程安全-锁
    oracle习题-emp表查询练习
    java-异常进阶-包的使用
    oracle-函数总结
  • 原文地址:https://www.cnblogs.com/iceberg2008/p/1399250.html
Copyright © 2011-2022 走看看