2013-06-21 26 views
1

以下是我想在我的项目来实现:如何在VB中“提示”用户输入的子表单?

当用户按下一个按钮,一个窗体弹出与文本框,单选按钮,然后就可以选择菜单,允许用户输入他们的通知,

单击确定,表单数据将被传递到主程序窗体中的某个文本框中 单击取消,子表单刚刚消失

这是可能的VB吗?

我想提示输入框和,但也有限制

我是新来的VB,很抱歉,如果我没有把这个问题明确

+0

什么不告诉你,你有什么.. **但也有限制** .. – matzone

回答

1

我用这个样品和清理代码位: http://www.dreamincode.net/forums/topic/103846-custom-inputbox/

我不知道如何实现你的单选按钮,然后选择菜单,但你可能可以计算出来,因为最困难的部分是从弹出的形式获取文本传递回调用形式这是为你在这里完成的。让我知道你是否需要这部分的帮助。也许你可以提供一个用户界面的屏幕截图?

所以,从您的通话形式,单击按钮显示提示:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 
    Dim result = frmPrompt.Show("The Title", "The Prompt", "Default", TextBox1.Text, False) 
End Sub 

这就是你粘贴到您的自定义提示的形式代码:

Imports System.Windows.Forms 

Public Class frmPrompt 

Protected m_BlankValid As Boolean = True 
Protected m_ReturnText As String = "" 

Public Overloads Function ShowDialog(_ 
    ByVal TitleText As String, _ 
    ByVal PromptText As String, _ 
    ByVal DefaultText As String, _ 
    ByRef EnteredText As String, _ 
    ByVal BlankValid As Boolean) As System.Windows.Forms.DialogResult 
    m_BlankValid = BlankValid 
    Me.Lbl_Prompt.Text = PromptText 
    Me.Text = TitleText 
    Me.Txt_TextEntry.Text = DefaultText 
    Me.ShowDialog() 
    EnteredText = m_ReturnText 
    Return Me.DialogResult 
End Function 

Public Overloads Shared Function Show(ByVal TitleText As String, ByVal promptText As String, ByVal DefaultText As String, ByRef TextInputted As String, Optional ByVal IsEmptyValid As Boolean = True) As System.Windows.Forms.DialogResult 
    Dim tmp As New frmPrompt 
    Return tmp.ShowDialog(TitleText, promptText, DefaultText, TextInputted, IsEmptyValid) 
End Function 

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txt_TextEntry.TextChanged 
    If Me.Txt_TextEntry.Text = "" Then 
     Me.But_Ok.Enabled = m_BlankValid 
    Else 
     Me.But_Ok.Enabled = True 
    End If 
End Sub 

Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_Ok.Click 
    Me.DialogResult = System.Windows.Forms.DialogResult.OK 
    m_ReturnText = Me.Txt_TextEntry.Text 
    Me.Close() 
End Sub 

Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But_Cancel.Click 
    Me.DialogResult = System.Windows.Forms.DialogResult.Cancel 
    m_ReturnText = "" 
    Me.Close() 
End Sub 
End Class 
0

刚刚创建自己的形式并用.ShowDialog()显示为模态,如InputBox。

然后,当数据输入到控件中时,在关闭表单之前,将数据传递到主表单,以免它丢失。

3

一个更简单的方法是声明你将使用的窗体的变量,然后调用showdialog。现在您可以访问窗体上的所有控件属性。因为您使用的是form2的对象,所以关闭表单时不会处理对象,因此所有内容都可用。

Dim NewForm2 As New Form2 
    Dim Result As DialogResult = NewForm2.ShowDialog 
    If Result = Windows.Forms.DialogResult.OK Then 
     MsgBox(Newform2.TextBox1.Text) 
    End If 

在窗体2补充一点:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 
    Me.DialogResult = Windows.Forms.DialogResult.OK 
    Me.Close() 
End Sub 
相关问题