2017-12-07 19 views
-1

Ich frage mich, wie der Wert einer Klasseneigenschaft mit der Eingabe eines Textfelds zurückgegeben wird? die Eingabe in der nameTextBox würde zur Eigenschaft Name einer Pet-Klasse gehen, die ripeTextBox wäre die Breed-Eigenschaft usw.Abrufen eines Klasseneigenschaftswerts aus einem Textfeld

Verwenden von C# -Fensterform.

+1

etwas Forschung über "Windows Forms Data Binding". Es gibt viele Strategien, die Sie verwenden könnten, um dies zu erreichen, und nicht eine "Best Practice". –

+0

Können Sie den Tags keine WinForms hinzufügen? – bic

Antwort

0
Pet pet = new Pet(); 
pet.Name = nameTextBox.Text; 

usw.

Wenn Ihre Frage ist, wie dieser Code ausgeführt werden dann entweder über einen „Update“ Button, und in seinen Click Ereignishandler diesen Code ausführen, oder auf die TextChanged Veranstaltung Textbox abonnieren und Mach es dort. (Sie können auch Bindung verwenden, ein bisschen komplizierter. Siehe here.)

0

Diese Logik kann durch die Behandlung der TextChanged Ereignis Ihrer TextBox Instanzen erreicht werden. Angesichts der aktuellen Pet Instanz m_Pet (zugewiesen innerhalb der Klasse als Mitglied, zum Beispiel):

private Pet m_Pet = new Pet(); 

und die Ereignisse Abonnement in der InitializeComponent Methode des Formulars:

m_TextBoxName = new TextBox(); 
m_TextBoxName.TextChanged += TextBoxName_TextChanged; 

hier ist, wie können Sie Dazu:

private void TextBoxName_TextChanged(Object sender, EventArgs e) 
{ 
    m_Pet.Name = m_TextBoxName.Text; 
} 

und gleich für so viele Eigenschaften durchgeführt werden, wie Sie wollen:

private void TextBoxBreed_TextChanged(Object sender, EventArgs e) 
{ 
    m_Pet.Breed = m_TextBoxBreed.Text; 
} 

private void TextBoxType_TextChanged(Object sender, EventArgs e) 
{ 
    m_Pet.Type = m_TextBoxType.Text; 
} 
Verwandte Themen