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");

  • 相关阅读:
    CLOSE_WAIT过大,致使tomcat停掉
    nginx安装
    前端知识点及面试题总结
    博客第一次
    二叉树的深度-python
    数字在排序数组中出现的次数-python
    两个链表的第一个公共节点-python
    自动生成接口自动化测试报告
    python实现四舍五入
    使用python的configparser操作.ini配置文件
  • 原文地址:https://www.cnblogs.com/iceberg2008/p/1399250.html
Copyright © 2011-2022 走看看