原创 用弹出窗口输入信息

2009-11-8 22:12 3602 9 9 分类: 软件与OS

功能说明


      在弹出窗口的文本框中输入文本,并将此文本添加到主窗口的列表框中


实现方法


      这个例子是利用对话框的返回值来获取用户输入的信息。基本过程如下:


      1、主窗口frmMain以对话框的方式(模式窗口的方式)弹出输入窗口,供用户输入文本


      2、当用户点击输入窗口的按钮时,输入窗口关闭并返回常数: 
      System.Windows.Forms.DialogResult.OK 
      主窗口在检测到这个返回值时,将输入窗口文本框的内容添加到列表框中


      3、当用户点击输入窗口的按钮时,输入窗口关闭并返回常数: 
      System.Windows.Forms.DialogResult.Cancel 
      主窗口在检测到这个返回值时,将不做任何添加,仅弹出消息框“一个添加操作被取消”


      4、当用户点击输入窗口右上角的<关闭>按钮时,运行结果同过程3


      为了能在点击相应按钮时返回相应的常数,需要对按钮和按钮的DialogResult属性进行设置,可以在<属性>窗 口中设置,也可以用代码。


      BOK.DialogResult = DialogResult.OK
      BCancel.DialogResult = DialogResult.Cancel


      另外,对输入窗口frmInput的AcceptButton属性和CancelButton属性分别设置为BOK和BCancel,这样,就可以通过键盘快捷的进行输入了。


输入窗口 frmInput 的属性设置


      AcceptButton = BOK ' 按钮OK
      CancelButton = BCancel ' 按钮Cancel


主窗口按钮的代码


Private Sub BAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BAdd.Click


      ' 创建一个输入窗口实例
      Dim frm As New frmInput
      ' 此变量用于存放对话框的返回结果
      Dim iResult As Integer


      ' 显示对话框
      iResult = frm.ShowDialog(Me)


      ' 根据返回结果进行相应操作
      If iResult = System.Windows.Forms.DialogResult.OK Then
            ' 由OK按钮返回,进行添加
            ListBox1.Items.Add(frm.TextBox1.Text)
      ElseIf iResult = System.Windows.Forms.DialogResult.Cancel Then
            ' 由Cancel按钮或关闭按钮返回,不进行添加
            MsgBox("一个添加操作被取消")
      Else


      End If


      ' 销毁输入窗口的实例
      frm.Dispose()


End Sub


输入窗口按钮的代码


Private Sub BOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BOK.Click


      Me.Close()


End Sub


输入窗口按钮的代码


Private Sub BCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BCancel.Click


      Me.Close()


End Sub


关于主窗口按钮代码中的Dispose()


      当窗体显示为模式对话框时,单击关闭窗体按钮(窗体右上角带“X”的按钮)将使窗体隐藏,并使 DialogResult 属性设置为 DialogResult.Cancel。与无模式窗体不同,当用户单击对话框的关闭窗体按钮或设置 DialogResult 属性的值时,.NET Framework 不调用 Close 方法。窗体转而可以隐藏并可重新显示,而不用创建该对话框的新实例。因为未关闭显示为对话框的窗体,所以在应用程序不再需要该 窗体时,必须调用该窗体的 Dispose 方法。


关于ShowDialog方法


      此方法有两个版本:


      Overloads Public Function ShowDialog() As DialogResult
      Overloads Public Function ShowDialog(IWin32Window) As DialogResult


      第一个版本不带参数,也就是不指定父窗口,以当前活动窗口作为对话框的所有者,此方法受 .NET Framework 精简版的支持。


      第二个版本可以用参数指定所有者,单是不受.NET Framework 精简版的支持。


关于DialogResult


      命名空间:System.Windows.Forms


      这是一个枚举类型,其成员用于标识对话框的返回值。成员列表如下:



成员名称说明
Abort
.NET Framework 精简版支持
对话框的返回值是 Abort
(通常由标签为“中止”的按钮发送)
Cancel
.NET Framework 精简版支持
对话框的返回值是 Cancel
(通常由标签为“取消”的按钮发送)
Ignore
.NET Framework精简版支持
对话框的返回值是 Ignore
(通常由标签为“忽略”的按钮发送)
No
.NET Framework 精简版支持
对话框的返回值是 No
(通常由标签为“否”的按钮发送)。
None
.NET Framework 精简版支持
从对话框返回了 Nothing
这表明有模式对话框继续运行
OK
.NET Framework 精简版支持
对话框的返回值是 OK
(通常由标签为“确定”的按钮发送)
Retry
.NET Framework 精简版支持
对话框的返回值是 Retry
(通常由标签为“重试”的按钮发送)。
Yes
.NET Framework 精简版支持
对话框的返回值是 Yes
(通常由标签为“是”的按钮发送)




关于AcceptButton 属性和CancelButton 属性


      这是Form类的两个属性。


      AcceptButton属性使您得以指定当用户在应用程序中按 ENTER 键时发生的默认操作。可使用此属性允许用户在完成操作后,只按 ENTER 键就 可快速定位,而不必用鼠标手动单击“接受”按钮。


      如果窗体上当前选定的控件截获 ENTER 键并处理它,则“接受”按钮可能不 被激活。例如,当选定多行文本框控件时,该控件允许按 ENTER 键在其中插入一行新字符。


      类似的,CancelButton 属性是指定每 当用户按 ESC 键时发生的默认操作。可以使用此属性允许用户只按 ESC 键在不提交更改的情况下关闭窗口,而不必用鼠标手动单击“取消” 按钮。


      这两个属性与对话框的返回值并没有关系,它们只是指定当Enter键和Esc键按下时,执行哪个按钮的操作,也就是等同于按 下相应的按钮,将执行相应按钮的Click事件,并且会按照按钮的DialogResult属性设置返回相应的值。也可以将两个属性设置为同一个按钮, 则当Enter按下或Esc按下时,都相当于按下了这个按钮。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条