Assegna alla proprietà DialogResult dei pulsanti Ok e Annulla rispettivamente System.Windows.Forms.DialogResult.OK e System.Windows.Forms.DialogResult.Cancel; quindi quando hai bisogno di mostrare la finestra tipo inputbox usa questo codice:
codice:
Dim ibx as New MyInputBox 'Si presuppone che si chiami così
if ibx.ShowDialog=System.Windows.Forms.DialogResult.OK then
'Si presuppone che txtInput sia il controllo TextBox in cui l'utente inserisce il testo e che abbia ambito di visibilità public
MessageBox.Show("L'utente ha inserito la stringa '" + ibx.txtInput + "' e ha premuto OK.")
else
MessageBox.Show("L'utente ha premuto Annulla.")
end if
Per semplificare le cose puoi aggiungere al tuo form un metodo shared di questo genere:
codice:
Public Shared Function InputBox(Title As String, DefaultText As String _ 'e simili
) As String
Dim ibx as new MyInputBox 'Si presuppone che si chiami così
'Valorizza le varie proprietà
ibx.Caption=Title
'Si presuppone che txtInput sia il controllo TextBox in cui l'utente inserisce il testo e che abbia ambito di visibilità public
ibx.UserText=DefaultText
'...eccetera
if ibx.ShowDialog=System.Windows.Forms.DialogResult.OK then
return ibx.UserText
else
return Nothing
'Oppure si può restituire una stringa nulla, come fa la funzione inputbox.
end if
End Sub
La funzione si userebbe così:
codice:
'In un altra parte del codice
Dim tstr as string=MyInputBox.InputBox("MyApp", "Ciao")
if tstr=nothing then
MessageBox.Show("L'utente ha premuto Annulla.")
else
MessageBox.Show("L'utente ha digitato '"+tstr+"' e ha premuto OK.")
End if