系统之家论坛

 找回密码
 立即注册
查看: 1536|回复: 1

21天学通VB.NET 第九章的学习笔记[原创]

[复制链接]

中级会员

0

主题

270

帖子

418

积分

中级会员

云瑞将军

Rank: 3

积分
418
发表于 2008-6-15 21:06:42 | 显示全部楼层 |阅读模式
Chapter 9

窗口。控件:窗口中的元素。
模态窗口:用户使用应用程序的其他部分时,必先处理并关闭它。通常叫对话框。很容易使用对话框,从用户得到信息。
非模态窗口:允许用户和应用程序之间进行交互。
事件及事件驱动。
参数的目的是提供信息,而不同的事件所能提供的信息不同。

验证输入正确性
一个有几个数据入口的窗体,一般都会有一个或多个按钮,至少有一个按钮代表用户完成输入信息,用户选择OK(确定),程序将运行输入验证的代码,检查所有内容的正确性。如果用户点击了Cancel(取消)按钮,我们就不需要再进行验证了。
Windows窗体类的几个方面共同完成这个验证过程:Causes Validation属性和Validating/Validated事件,每个控件都具有这样的成员。使用这些属性和时间的一般过程是把所有数据入口控件以及所有能够导致数据输入的按钮的Causes Validation属性设置为True。其他按钮或其他一些不会产生数据输入的按钮,把它们的Causes Validation属性设置为false。然后把判断一个数据域是否合法的代码添加到Validating事件的响应中。当用户尝试把焦点切换到一个Causes Validation值为True的可编辑控件上,上一个Causes Validation为True的空间的Validating事件就被触发。

查阅MSDN
.NET Framework 类库
Control..::.Validated 事件
在控件完成验证时发生。
命名空间:  System.Windows.Forms
程序集:  System.Windows.Forms(在 System.Windows.Forms.dll 中)

语法
Visual Basic(声明)
Public Event Validated As EventHandler
Visual Basic(用法)
Dim instance As Control
Dim handler As EventHandler
AddHandler instance.Validated, handler
C#
Public event EventHandler Validated 当通过使用键盘(Tab、Shift+Tab 等)、通过调用 Select 或 SelectNextControl 方法或者通过将 ContainerControl..::.ActiveControl 属性设置为当前窗体等方式更改焦点时,焦点事件按以下顺序发生:
        Enter
        GotFocus
        Leave
        Validating
        Validated
        LostFocus
当通过使用鼠标或调用 Focus 方法的方式更改焦点时,焦点事件按以下顺序发生:
        Enter
        GotFocus
        LostFocus
        Leave
        Validating
        Validated
如果 CausesValidation 属性设置为 false,则将取消 Validating 和 Validated 事件。
如果在 Validating 事件委托中,CancelEventArgs 的 Cancel 属性设置为 true,则正常情况下将在 Validating 事件之后发生的所有事件均被取消。
有关处理事件的更多信息,请参见使用事件。

示例
下面的代码示例使用派生类 TextBox 并验证用户输入的电子邮件地址。如果电子邮件地址不是包含“@”和“.”的标准格式,则验证失败,显示一个 ErrorProvider 图标,并取消该事件。此示例要求已在窗体上创建了一个 TextBox 和一个 ErrorProvider 控件。
Visual Basic
Private Function ValidEmailAddress(ByVal emailAddress As String, ByRef errorMessage As String) As Boolean
      ' Confirm there is text in the control.
      If textBox1.Text.Length = 0 Then
         errorMessage = "E-mail address is required."
         Return False

      End If

      ' Confirm that there is an "@" and a "." in the e-mail address, and in the correct order.
      If emailAddress.IndexOf("@") > -1 Then
         If (emailAddress.IndexOf(".", emailAddress.IndexOf("@")) > emailAddress.IndexOf("@")) Then
            errorMessage = ""
            Return True
         End If
      End 粉底液哪个牌子好眼霜淘宝皇冠店大全日霜什么减肥产品最有效效果好的最安全的减肥药毛孔左旋肉碱牌子效果好的搭配图片眼线按摩霜推荐非常好瘦身霜排行榜晒后抗衰老护肤品排行榜女性论坛If

      errorMessage = "E-mail address must be valid e-mail address format." + ControlChars.Cr + _
        "For example 'someone@example.com' "
      Return False
End Function

   Private Sub textBox1_Validating(ByVal sender As Object, _
   ByVal e As System.ComponentModel.CancelEventArgs) Handles textBox1.Validating

      Dim errorMsg As String
      If Not ValidEmailAddress(textBox1.Text, errorMsg) Then
         ' Cancel the event and select the text to be corrected by the user.
         e.Cancel = True
         textBox1.Select(0, textBox1.Text.Length)

         ' Set the ErrorProvider error with the text to display.  
         Me.errorProvider1.SetError(textBox1, errorMsg)
      End If
   End Sub


   Private Sub textBox1_Validated(ByVal sender As Object, _
   ByVal e As System.EventArgs) Handles textBox1.Validated
      ' If all conditions have been met, clear the error provider of errors.
      errorProvider1.SetError(textBox1, "")
   End Sub
MessageBox类
模态对话框是对话框的一种特殊形式。这意味着在和程序的其他部分进行交互之前必须先对模态对话框进行处理。对话框常常用来给用户提供信息(比如错误)或者得到信息。它用来在用户做其他事情之前和用户进行交互。这个类用一个简单的对话框来显示一条信息并可以让用户从几个按钮中选择从而反馈信息。这个类不能建立实例,但可以用show语句。
Show方法有7个不同参数,但我们只传递我们需要设置的值。这个方法有12种重载形式,可以支持多种不同的参数组合。
Text 代表MessageBox显示的信息,不可省略;每个Show的重载都包含这个参数;
Caption 这个字符串决定了MessageBox标题栏的信息;
Buttons 接受一个枚举值,这个参数控制了MessageBox显示的按钮;
MessageBoxButton.AbortRetryIgnore使对话框显示Abort(放弃)、Retry(重试)、Ignore(忽略)按钮。MessageBoxButton.YesNo显示yes和no按钮,等等。
Icon 控制跟消息一起显示的图片;
DefaultButton 当消息框上多余一个按钮时,只有一个可以作为默认的按钮。如果用户在消息框打开的时候按回车,就相当于默认按钮:
Options 控制MessageBox的外观;
OwnerWindows 指定了在程序中消息框应该出现在哪个窗口的前面。
可将how方法的返回值,保存在变量、直接在表达式或者条件里面调用。

Timer控件
Timer(定时器)控件是为对时间进行控制的程序而设计的。如果使用这个控件,可以在固定的时间间隔触发自己的tick事件。添加对Tick事件的处理就可以在一定的时间间隔执行相应的代码。

使用timer控件的步骤:
1 向窗体添加timer控件,需设置它的属性。把Enabled属性设置成true,设置Interval属性,确定事件发生的时间长度(以毫秒为单位,1000ms=1s)。
2 向tick事件添加代码(双击timer控件,快速添加事件处理器)。

NotifyIcon 控件
当一个程序要一直运行并且需要在某种时刻在视觉上提示用户注意,一种普遍的方法就是在系统托盘加上一个图标。在.NET中只需要给窗体添加一个NotifyIcon控件并设置它的属性就够了。最重要的属性就是icon,它指向一个图标文件,用来显示在系统托盘上。如果在右键单击图标时需要显示菜单,就要给窗体添加一个ContextMenu属性,并设置NotifyIcon的ContextMenu属性。

ErrorProvider
设计数据入口窗体的另外一个重要特性就是ErrorProvider,它能够显示出窗体上的哪个控件发生了错误。默认设置一般满足大多数需要。当需要表示一个控件发生输入错误的时候,就可以用ErrorProvider的SetError方法。

对话框控件
http://hi.baidu.com/kingpheonix
http://blog.sina.com.cn/kingace
http://www.zerofox.cn/bbs/index.php
发表于 2008-6-15 21:27:23 | 显示全部楼层
呵呵 看不懂 云瑞加油
好好学:bucuo
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

系统之家论坛

GMT+8, 2024-4-28 19:22 , Processed in 0.017865 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz!

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表