Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [.net - C++] Prendere il Text del TextBox corrente

    Ciao a tutti,
    sto realizzando un form che funziona così.
    Genera una textbox, quando si inserisce del testo, sull'evento Leave esegue una query e mi genera una label a fianco e un altro text box nella riga sotto e così via.

    Ho il problema quando vado ad esempio, a reinserire una stringa in un textbox già creato.
    Ovviamente vorrei che sull'evento Leave mi sovrascriva la label col nuovo risultato della query, ma siccome come vi mostro nel codice il lavoro che viene svolto è sequenziale tramite l'array Controls del Panel al quale aggiungo ogni extBox e ogni Label, non so coem fare per ottenerre, ad esmpio, l'oggetto corrente, ad esempio l'oggetto su cui ho l'evento Enter. Voi sapete come fare?

    Alla generazione del form creo una textbox
    codice:
     public: void create_textbox()
    		 {
    			 TextBox ^ltextbox;
    			 ltextbox = gcnew TextBox();
    			 ltextbox->Location = System::Drawing::Point(this->panel_x, this->panel_y);
    			 ltextbox->Name = L"txt_regnumber";
    			 ltextbox->Size = System::Drawing::Size(100, 20);
    			 ltextbox->TabIndex = this->index_tab++;
    			 ltextbox->Leave += gcnew System::EventHandler(this, &frm_contradictory::txt_regnumber_OnBlur);
    			 this->pnl_contradictory->Controls->Add(ltextbox);
    			 this->pnl_contradictory->
    		 }
    sul metodo txt_regnumber_OnBlur()

    codice:
    private: System::Void txt_regnumber_OnBlur(System::Object^  sender, System::EventArgs^  e)
    		 {
    			 this->search_regnumber();
    		 }
    il metodo search_regnumber(); lavora sequenzialmente così

    codice:
    public: bool search_regnumber()
    		 {
    			 String ^sql, ^str;
    				 sql="SELECT id, matricola, descrizione FROM anagrafica_ausilii WHERE id_asl = " 
    			 	 + lib::tostring(this->main_session->session_auth->auth_data->get("idasl")) 
    				 + " AND matricola = '" + this->pnl_contradictory->Controls[this->pnl_contradictory->Controls->Count-1]->Text + "'";
    				 this->pnl_contradictory->Controls[this->pnl_contradictory->
    				 try
    				 {
    					 this->main_db->db_query(sql);
    					 if(this->main_db->db_fetch())
    					 {	 this->create_label(lib::tostring(this->main_db->db_read(2)));
    							 lib::alert(lib::tostring(this->main_db->db_read(2)));
    							 this->panel_y += 27;
    							 this->create_textbox();
    						 //}
    						 return true;
    					 else
    					 {
    						 lib::alert("La matricola inserita non esiste per questa ASL.");
    						 return false;
    					 }
    				 }
    				  catch(Exception ^exc)
    				 {
    					 lib::alert("Eccezione " + exc);
    					 return false;
    				 }
    		 }
    ora come ora sono un po' limitato con questi metodi, e ripeto quello che vorrei fare sarebbe trovare il contenuto dell'oggetto sul quale ad esempio ho il focus adesso. in modo tale che poi in qualche modo mi scorro l'array controls per trovarmi l'indice dell'oggetto corrente.

    spero di esseremi spiegato con chiarezza.

    grazie a chiunque mi possa dare il proprio aiuto.

    ciao!

    cyb
    Teologia: l'arte di argomentare l'inesistente per mezzo dell'insostenibile.

  2. #2
    autorisolto, basta prende il sende del metodo associato all'evento e crearci un oggetto TextBox tramite cast.

    Potete chiudere.

    grazie lo stesso!

    cyb
    Teologia: l'arte di argomentare l'inesistente per mezzo dell'insostenibile.

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.