Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-11-2011, 17:01   #1
pare93
Member
 
L'Avatar di pare93
 
Iscritto dal: Jul 2009
Messaggi: 268
[C#] Utilizzare un controllo nella classe

Salve,

devo creare una algoritmo dove faccio uso di un controllo, in questo caso una TextBox, in una classe esterna.

Mi spiego attraverso un piccolo esempio.

Codice:
public partial class Form1 : Form
{
      ......
      Metodi vari 
      ......
}

private class MiaClasse 
{
      ......
      Metodo che usa textBox della Form madre
      ......
}
Ho provato costruendo una funzione della classe Form1 che riceve come parametro il messaggio e al suo interno stampa il mess nella textBox. E quindi richiamando questa funzione dalla classe "MiaClasse".
Non mi da errore ma penso che ci sia un errore di fondo riguardo all' ereditarietà o magari riguardo al Thread che ha creato la classe Form.
Ad ogni modo non funziona lo stesso.

Inoltre ho provato a prendere una parte di algoritmo da una programma esterno che utilizzava il delegate ( cose di cui non sono a conoscenza ) ma non riesco ne a capire quella parte ne a farlo funzionare.

Qualcuno ha qualche suggeriento ?
Grazie.
pare93 è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2011, 19:01   #2
pare93
Member
 
L'Avatar di pare93
 
Iscritto dal: Jul 2009
Messaggi: 268
up
pare93 è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2011, 22:30   #3
s1m0_93
Bannato
 
Iscritto dal: Nov 2008
Messaggi: 136
Scusa ma così non funziona?
Codice:
public partial class Form1 : Form
{
      public Form1()
      {
            myTextBox.Text = new Textbox();;
      }

      Textbox myTextBox {get;set;}
}

private class MiaClasse 
{
      public MiaClasse(Form form)
      {
            myForm = form;
      }  


      Form myForm;

      public void ChangeTextbox(string text)
      {
            myForm.myTextBox  = text;
      }
   
     
}
s1m0_93 è offline   Rispondi citando il messaggio o parte di esso
Old 06-11-2011, 12:54   #4
pare93
Member
 
L'Avatar di pare93
 
Iscritto dal: Jul 2009
Messaggi: 268
Quote:
Originariamente inviato da s1m0_93 Guarda i messaggi
Scusa ma così non funziona?
Codice:
public partial class Form1 : Form
{
      public Form1()
      {
            myTextBox.Text = new Textbox();;
      }

      Textbox myTextBox {get;set;}
}

private class MiaClasse 
{
      public MiaClasse(Form form)
      {
            myForm = form;
      }  


      Form myForm;

      public void ChangeTextbox(string text)
      {
            myForm.myTextBox  = text;
      }
   
     
}
Non non funzione assolutamente e poi sinceramente non ha neppure tanto senso visto che ti crei un instanza di tipo TextBox e scrivi sulla proprietà .Text di quell' istanza. Senza quindi identificare in alcun modo la casella di testo dove io concretamente voglio scrivere.

Il problema sta nela fatto che il .NET non permette di utilizzare in controllo da una Thread che non ha creato il controllo stesso.

Qualcuno sa darmi una mano? Perchè non riesco veramente ad uscire
pare93 è offline   Rispondi citando il messaggio o parte di esso
Old 06-11-2011, 13:36   #5
s1m0_93
Bannato
 
Iscritto dal: Nov 2008
Messaggi: 136
Capito. Comunque una piccola precisione. Quella textbox era appunto quella presente nel form, non un'altra a parte, che in genere viene dichiarata nel designer. L'unica cosa è che non sono stato a scrivere anche il codice necessario per inserirla nel form.

Nelle applicazioni multithread, quando un thread secondario vuole accedere a un controllo del form si utilizzando dei metodi appositi, magari riesci a usarli anche in questa situazione.
Al massimo prova a utilizzare gli eventi.
s1m0_93 è offline   Rispondi citando il messaggio o parte di esso
Old 06-11-2011, 14:36   #6
pare93
Member
 
L'Avatar di pare93
 
Iscritto dal: Jul 2009
Messaggi: 268
Sono proprio quei metodi appositi che sto cercando.
pare93 è offline   Rispondi citando il messaggio o parte di esso
Old 06-11-2011, 15:49   #7
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Allora ti serve BeginInvoke che inoltra una chiamata asincrona al thread che gestisce la UI, eseguendo il codice del delegate che gli passi.

Se la chiamata dev'essere sincrona, invece, si usa Invoke.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Raspberry Pi 5, il prezzo è ormai...
I frigoriferi dei supermercati diventano...
Le vecchie fotocamere digitali compatte ...
La Cina potrebbe rinviare il ritorno del...
Verizon non è preoccupata della c...
RDNA 5 sulle APU AMD, ma non per tutti: ...
Marvell acquisisce Lumentum per 115 mili...
La febbre dei data center fa impennare i...
ECOVACS T90S OMNI crolla a 499€ su Amazo...
In Cina i camion elettrici hanno gi&agra...
Attacchi hacker ai supermercati in Europ...
I datacenter non piacciono? OpenAI prova...
Cupra Raval sfida BMW, Volvo e le altre:...
BYD supera per la prima volta le 300.000...
Crisi RAM, spunta un prezzo incredibile ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:41.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v