txttxm_LostFocus()
这个事件是不是只在控件txttxm失去焦点之后发生呢?那么dragdrop()
dragover()呢?mousedown()和click()呢?
都有什么区别吗?
validate事件一般在什么时候使用??

解决方案 »

  1.   

    建议好好看看MSDN,对各个事件都有明确的说法。
      

  2.   

    LostFocus 事件此事件是在一个对象失去焦点时发生,焦点的丢失或者是由于制表键移动或单击另一个对象操作的结果,或者是代码中使用 SetFocus 方法改变焦点的结果。DragDrop 事件在一个完整的拖放动作(即将一个控件拖动到一个对象上,并释放鼠标按钮)完成,或使用 Drag 方法,并将其 action 参数被设置为 2 (Drop) 时,该事件发生。DragOver 事件它在拖放操作正在进行时发生。可使用此事件对鼠标指针在一个有效目标上的进入、离开或停顿等进行监控。鼠标指针的位置决定接收此事件的目标对象。MouseDown 事件MouseDown 是三种鼠标事件中最常使用的事件。例如,在运行时可用它调整控件在窗体上的位置,也可用它实现某些图形效果。按下鼠标按钮时就可触发此事件。注意 鼠标事件被用来识别和响应各种鼠标状态,并把这些状态看作独立的事件,不应将鼠标与 Click 事件和 DblClick 事件混为一谈。在按下鼠标按钮并释放时,Click 事件只能把此过程识别为一个单一的操作─ 单击操作。鼠标事件不同于 Click 事件和 DblClick 事件之处还在于,鼠标事件能够区分各鼠标按钮与 SHIFT、CTRL、ALT 键。Validate事件在焦点转换到一个(第二个)控件之前发生,此时该控件的 CausesValidation 属性值设置为True。
      

  3.   

    DragOver 事件
          
    它在拖放操作正在进行时发生。可使用此事件对鼠标指针在一个有效目标上的进入、离开或停顿等进行监控。鼠标指针的位置决定接收此事件的目标对象。
    DragDrop 事件
          
    在一个完整的拖放动作(即将一个控件拖动到一个对象上,并释放鼠标按钮)完成,或使用 Drag 方法,并将其 action 参数被设置为 2 (Drop) 时,该事件发生。
    LostFocus 事件
          
    此事件是在一个对象失去焦点时发生,焦点的丢失或者是由于制表键移动或单击另一个对象操作的结果,或者是代码中使用 SetFocus 方法改变焦点的结果。
    Validate事件
        
    在焦点转换到一个(第二个)控件之前发生,此时该控件的 CausesValidation 属性值设置为True。
    Click 事件       
    此事件是在一个对象上按下然后释放一个鼠标按钮时发生。它也会发生在一个控件的值改变时。。在按下鼠标按钮并释放时,Click 事件只能把此过程识别为一个单一的操作─ 单击操作。
    MouseDown、MouseUp 事件
          
    这些事件是当按下 ( MouseDown ) 或者释放 ( MouseUp ) 鼠标按钮时发生。
      

  4.   

    LostFocus 事件
    此事件是在一个对象失去焦点时发生,焦点的丢失或者是由于制表键移动或单击另一个对象操作的结果,或者是代码中使用 SetFocus 方法改变焦点的结果。
    语法
    Private Sub Form_LostFocus( )
    Private Sub object_LostFocus([index As Integer])
    LostFocus 事件包括下列部分:
    部分 描述 
    object 一个对象表达式,其值是“应用于”列表中的一个对象。 
    index 一个整数,它用来唯一地标识一个在控件数组中的控件。 
    说明
    LostFocus 事件过程主要是用来对更新进行验证和确认。使用 LostFocus 可以在焦点移离控件时引进确认。这类事件过程的另一种用途与在 GotFocus 事件过程中的应用类似,可以隐藏、显示其它对象或者使它们有效或无效。也可使设置在该对象的 GotFocus 事件过程中的条件取反或对其进行更改。如果由 Visual Basic 所建立的 .exe 文件要显示一个由也是用 Visual Basic 所建立的 .dll 文件所创建的对话框,则该 .exe 文件的窗体将得到 Deactivate 和 LostFocus 事件。这可能是不希望的,因为对话框将不能获得 Deactivate 事件: 如果该对象是进程外的部件。
    如果该对象不是用 Visual Basic 编写成。
    在开发环境中当调用一个用 Visual Basic 所建立的 DDL 时
    ---------------------------------------------------------------------------------
    DragOver 事件
    它在拖放操作正在进行时发生。可使用此事件对鼠标指针在一个有效目标上的进入、离开或停顿等进行监控。鼠标指针的位置决定接收此事件的目标对象。语法Private Sub Form_DragOver(source As Control, x As Single, y As Single, state As Integer)Private Sub MDIForm_DragOver(source As Control, x As Single, y As Single, state As Integer)Private Sub object_DragOver([index As Integer,]source As Control, x As Single, y As Single, state As Integer)DragOver 事件语法包括下列部分:部分 描述 
    object 一个对象表达式,其值是“应用于”列表中的一个对象。 
    index 一个整数,用来唯一地标识一个在控件数组中的控件。 
    source 正在被拖动的控件。可用此参数在事件过程中引用各属性和方法—例如, Source.Visible = False。 
    x, y 是一个指定当前鼠标指针在目标窗体或控件中水平 (x) 和垂直 (y) 位置的数字。这些坐标值通常用目标坐标系统来表示,该坐标系是通过 ScaleHeight、ScaleWidth、ScaleLeft 和 ScaleTop 属性而设置的。 
    state 是一个整数,它相应于一个控件的转变状态,该控件在相关目标窗体或控件中正在被拖动: 
      0 = 进入(源控件正被向一个目标范围内拖动)。 
      1 = 离去(源控件正被向一个目标范围外拖动)。 
      2 = 跨越(源控件在目标范围内从一个位置移到了另一位置)。 
    说明为了确定在拖动开始后和控件放在目标上之前发生些什么,应使用 DragOver 事件过程。例如,通过加亮目标(由代码设置 BackColor 或 ForeColor 属性)或者显示一个特定的拖动指针(由代码设置 DragIcon 或 MousePointer 属性)可验证有效的目标范围。为了确定一些关键转变点处的操作,应使用 state 参数。例如,当 state 的设置为 0(进入)时可使一个可能的目标加亮,而当 state 的设置为 1(离去)时可恢复该对象先前的外观。在 state 的设置为 0(进入)对象接收 DragOver 事件的情况: 如果源控件被放在该对象上,则该对象就接收一个 DragDrop 事件。
    如果源控件没有被放在该对象上,则当 state 的设置为 1(离去)时该对象就接收另一个 DragOver 事件。 
    注意 应使用 DragMode 属性和 Drag 方法指定开始拖动的方式。关于 source 参数的使用技巧,请参阅 DragDrop 事件说明主题部分。
    -------------------------------------------------------------
    mousedown()和click()   一个是指限于鼠标击中,一个是 既是鼠标,有可是键盘等
    ----------------------------------------------------------------
    Validate事件
    在焦点转换到一个(第二个)控件之前发生,此时该控件的 CausesValidation 属性值设置为True。
    语法Private Sub object_Validate(KeepFocus As Boolean)Validate事件语法包含下面几部分:部分 描述 
    object 一个对象表达式,其值为“应用于”列表中的一个对象。 
    KeepFocus 确定控件是否失去焦点的值。KeepFocus设置为True时,控件保持焦点。 
    说明
    Validate 事件和CausesValidation 属性协同工怍,防止控件失去焦点直到满足确定的准则。
    重点   只有在即将获得焦点的控件的CausesValidation属性值设置为True时,Validate事件才发生。
      

  5.   

    Validate事件、 CausesValidation属性示例
    该示例使用三个控件来示范Validate 事件和CausesValidation 属性的使用。在缺省情况下,两个TextBox 控件的CausesValidatio n属性设置为 True,这样当您想把焦点从一个TextBox转换到另一个时,Validate 事件发生。如果 Text1没有包含日期或 Text2没有包含一个大于10的数字,焦点的转换将被阻止。由于 Command1控件的CausesValidation 属性设置为 False,因此您无论何时都可以单击Help 按钮。要试验该示例,在窗体中放置一个CommandButton 和两个TextBox 控件,将代码粘接到窗体的“声明”部分并运行此工程。按Tab 键尝试转换焦点。Private Sub Form_Load()
       '设置按钮的CausesValidation属性为False。当用户
       '单击按钮时,Validate事件不发生。
       '设置按钮的Caption属性为“帮助”。
       With Command1
          .CausesValidation = False
          .Caption = "Help"
       End With   Show
       With Text1 '选择Text1的文本并为它设置焦点。
          .SelLength = Len(Text1.Text)
          .SetFocus
       End With
    End SubPrivate Sub Command1_Click()
       '当单击此按钮时给出用户帮助信息。
       MsgBox _
       "Text1 must be set to a date." & VbCrLF & _
       "Text2 must be a number less than 10."
    End SubPrivate Sub Text1_Validate(KeepFocus As Boolean)
       '如果值不是一个日期,则保持焦点,除非用户
       '单击Help。
       If Not IsDate(Text1.Text) Then 
          KeepFocus = True
          MsgBox "Please insert a date in this field.", ,   "Text1"
       End if
    End Sub
       
    Private Sub Text2_Validate(KeepFocus As Boolean)
       '如果值是一个大于10的数字,保持焦点。
       If Not IsNumeric(Text2.Text) Or Val(Text2.Text) > 10 Then 
          KeepFocus = True
    MsgBox _
    "Please insert a number less than or equal to 10.", , "Text2"
       End If
    End Sub
      

  6.   

    但是MSDN说得最对!不信你们自己去看!:)