Leggere una textbox su un altro form

lunedì 24 gennaio 2005 - 10.53

AntonioM Profilo | Junior Member

Salve a tutti,
ho bisogno di fare una cosa banale (credo), come posso leggere il valore contenuto in una textbox su un form caricato ma che non ha il focus? Spero di essere stato chiaro... Grazie in anticipo!

freeteo Profilo | Guru

ciao,
se e' 1a form MdiChild allora puoi loopare sull'insieme controls della relativa MdiContainer, e vedere se il tipo è "mdiclient" :

foreach(Control zCtrl in pFormMdi.Controls)
{
switch (zCtrl.GetType().Name.ToLower())
{
case "mdiclient":
MdiClient zMdiCli = (MdiClient)zCtrl;

.....
e poi ti prendi il controllo e leggi/scrivi etc....

AntonioM Profilo | Junior Member

Scusate è vero, non sono stato sufficientemente chiaro. Provo a spiegarmi meglio. Ho un form chiamato frmDettagli che ha il focus, all'apertura deve eseguire una query SQL per far cio' deve leggere un parametro che l'utente ha inserito in una textbox su un altro form (frmClienti) aperto ma che non ha il focus. Come posso fare?

alextyx Profilo | Expert

Devi preoccuparti di dichiarare pubblici, in un modulo, tutte le form che dovranno essere lette da altre zone dell'applicazione, a meno che nn siano dichiarate all'interno della classe che deve leggerli: ad esempio un form che ne dichiara ed istanzia un altro. Se la tua form senza focus, si chiama 'pippo' ed è stata dichiarata pubblica in un modulo, allora basterà che dalla tua altra form tu scriva, ad esempio

Dim Valoreletto as string
Valoreletto=Pippo.Textbox1.text

o qualcosa del genere! (il codice è scritto a mano, nn escludo castronerie!)

Tanto x darti un'idea, potresti scrivere:

Module Module1
Public F1 As Form1
Public F2 As Form2

Public Sub Main()
F1 = New Form1
F1.TxbMonetaria1.TipiSeparatori = LibreriaControlli.TxbMonetaria.Sep.USA
F1.Show()
Windows.Forms.Application.Run()
End Sub

End Module

In questo modo F1 e F2 saranno visibili ed indirizzabili da qualunque altro form, o procedura, della tua applicazione, anche se F1 fosse la tua mainform, cioè la prima che lanci. Ciao e buon lavoro!

AntonioM Profilo | Junior Member

Grazie Alextyx, perfetto era quello che cercavo.

Antonio
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5