Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Creare funzione tipo inputbox.

    Voglio creare una funzione del tipo inputbox....
    Ma è più complesso di quanto pensassi...
    Forse ho bisogno di qualche funzione o istruzione a me sconosciuta. se qualcuno riesce a crearla, e mi scrive quà il codice mi farebbe un grande favore... GRAZIE!!!!

  2. #2

    hurry up!

    possibile che nessuno abbia qualche idea?
    E' forse che visual basic non abbia abbastanza elementi per fare tale funzione?

    il fatto è che il valore della funzione deve essere restituito solo dopo l'evento del click del bottone di conferma o di annullamento...
    ho così provato a creare una var booleana, che acquista un valore positivo se avviene l'evento in questione su uno dei due bottoni (click per l'appunto). nella funzione, un ciclo while-wend controllava questa variabile. il problema è che il ciclo ha una frequenza tale da impiantare il computer (vi capita anche quando vi incasinate con i GOTO, vero?) così ho provato a rallentarlo con un delay, compromettendo l'efficenza della funzione.

    se avete una soluzione, anche non elaborata, perfavore, fatevi avanti. grazie.

  3. #3
    Utente di HTML.it L'avatar di EngLab
    Registrato dal
    Jan 2006
    Messaggi
    496
    Puoi spiegarti meglio?ke intendi per funzione "tipo inputbox"??? Cosa vuoi ottenere con questa funzione?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    In effetti non si capisce assolutamente ne' cosa vuoi fare ne' cosa hai gia' fatto ...

  5. #5
    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
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da MItaly
    Assegna alla proprietà DialogResult dei pulsanti Ok e Annulla rispettivamente System.Windows.Forms.DialogResult.OK e System.Windows.Forms.DialogResult.Cancel; ...
    Veramente si parlava di VB6 ... anche se non ho compreso bene quale fosse il problema ...

  7. #7
    voglio ricreare una funzione imput box... una funzione che tramite una finestra di messaggio, mi rimandi una variabile contenente un testo scritto dall'utente nella finestra... tipo imput box... così inizio il mio public function...

    Public function MLIB (title as string, text as string)
    form1.caption = title
    form1.label1.caption = text
    load form1

    ... ora si apre form 1 e io immetto il testo (o meglio, lo immette l'utente) e poi do l'ok, come faccio a controllare l'evento click dentro il public della funzione??? o posso dall'evento rilanciare il valore nella funzione??? BOH!!!!

    questo è il punto!

    spero di essermi spiegato meglio, grazie.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma perche' non vuoi utilizzare la InputBox che mette a disposizione il VB6?

  9. #9
    Originariamente inviato da oregon
    Veramente si parlava di VB6 ... anche se non ho compreso bene quale fosse il problema ...
    Whoops... temo di non aver letto bene il titolo. Ritiro tutto.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Originariamente inviato da tossam
    voglio ricreare una funzione imput box... una funzione che tramite una finestra di messaggio, mi rimandi una variabile contenente un testo scritto dall'utente nella finestra... tipo imput box... così inizio il mio public function...

    Public function MLIB (title as string, text as string)
    form1.caption = title
    form1.label1.caption = text
    load form1

    ... ora si apre form 1 e io immetto il testo (o meglio, lo immette l'utente) e poi do l'ok, come faccio a controllare l'evento click dentro il public della funzione??? o posso dall'evento rilanciare il valore nella funzione??? BOH!!!!

    questo è il punto!

    spero di essermi spiegato meglio, grazie.
    codice:
    Public function MLIB (title as string, text as string) As String 'Occhio, se non scrivi "As String" la funzione restituisce un Variant, che è più lento, occupa più memoria e non dice cosa restituisce esattamente la funzione
    Load form1 'Se il form è scaricato come fai ad impostare le sue proprietà?
    form1.caption = title
    form1.label1.caption = text
    form1.Show 1 'Mostra il form come modale; non ritorna finché il form non è stato nascosto
    MLIB=form1.nometextbox 'Nometextbox è la textbox in cui l'utente inserisce il testo
    Unload form1
    End Function
    Ovviamente alla pressione dei pulsanti Ok o Annulla devi solo nascondere il form e non scaricarlo, altrimenti si perde il valore del textbox.
    Ancora meglio sarebbe creare una nuova istanza di form1:
    codice:
    Public function MLIB (title as string, text as string) As String
    Dim ibx As New form1
    ibx.caption = title
    ibx.label1.caption = text
    ibx.Show 1
    MLIB=ibx.nometextbox
    Set ibx=Nothing
    End Function
    P.S.: usa dei nomi decenti: form1 e label1 non sono granché significativi.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.