C++ Wert in TextBox anzeigen nach ComboBox auswahl

fox40phil

Rear Admiral
Registriert
Okt. 2008
Beiträge
5.931
Mahlzeit!

Ich möchte gerne ein Windowsprogramm programmieren und habe gerade folgendes Problem:
In einer ComboBox gibt es 3 verschiedene Elemente/Eigenschaften die man auswählen kann. Nach dem man sich für eins entschieden hat soll sofort in dem Textfeld dadrunter ein bestimmter Text angezeigt werden, der von Element zu Element unterschiedlich ist.

Wie realisiere ich das?

Übrigends ist die TextBox nur readOnly.

Ich bin ganz neu in der W32 Programmierung, hab vorher nur C++ Konsolenanwendungen geschrieben. :rolleyes:

Gruß Phil


Die Eigenschaften oder so^^...:
Code:
[SIZE=4][COLOR=#008000][SIZE=4][COLOR=#008000]// textBox1
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4][/SIZE][SIZE=4][COLOR=#008000][SIZE=4][COLOR=#008000]// 
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4][/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]->textBox1->Cursor = System::Windows::Forms::Cursors::Arrow;
[/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]->textBox1->Location = System::Drawing::Point(171, 67);
[/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]->textBox1->Name = L[/SIZE][SIZE=4][COLOR=#a31515][SIZE=4][COLOR=#a31515]"textBox1"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4];
[/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]->textBox1->ReadOnly = [/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]true[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4];
[/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]->textBox1->Size = System::Drawing::Size(52, 20);
[/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]->textBox1->TabIndex = 19;
[/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]->textBox1->TextChanged += [/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]gcnew[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4] System::EventHandler([/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4], &Form1::textBox1_TextChanged);
[/SIZE] 
[SIZE=4][COLOR=#008000]//---------------------[/COLOR][/SIZE]
[SIZE=4][COLOR=#008000][SIZE=4][COLOR=#008000] 
// comboBox1
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4][/SIZE][SIZE=4][COLOR=#008000][SIZE=4][COLOR=#008000]// 
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4][/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]->comboBox1->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
[/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]->comboBox1->FormattingEnabled = [/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]true[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4];
[/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]->comboBox1->Items->AddRange([/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]gcnew[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4] cli::[/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]array[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]< System::Object^ >(3) {L[/SIZE][SIZE=4][COLOR=#a31515][SIZE=4][COLOR=#a31515]"SC 250U"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4], L[/SIZE][SIZE=4][COLOR=#a31515][SIZE=4][COLOR=#a31515]"SC 500U"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4], L[/SIZE][SIZE=4][COLOR=#a31515][SIZE=4][COLOR=#a31515]"SC 500HE-US"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]});
[/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]->comboBox1->Location = System::Drawing::Point(171, 32);
[/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]->comboBox1->Name = L[/SIZE][SIZE=4][COLOR=#a31515][SIZE=4][COLOR=#a31515]"comboBox1"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4];
[/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]->comboBox1->Size = System::Drawing::Size(100, 21);
[/SIZE][SIZE=4][COLOR=#0000ff][SIZE=4][COLOR=#0000ff]this[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=4]->comboBox1->TabIndex = 16;
[/SIZE][SIZE=4][COLOR=#008000][SIZE=4][COLOR=#008000]// [/COLOR][/SIZE][/COLOR][/SIZE]
 
Zuletzt bearbeitet:
Wenn die Textbox ReadOnly ist, dann kannst du da auch nichts reinschreiben.
Du könntest die Textbox kurz auf ReadOnly = false setzen, den Text einfügen, wieder auf ReadOnly=true setzen.

Du brauchst für die Combobox einen Eventhandler für das SelectionChanged Event, und darin greifst du dann auf die comboBox.SelectedItem eigenschaft zu und weißt diese der Textbox.Text eigenschaft zu.
 
hmm mit reinschreiben meinst du auch einen Wert anzeigen lassen? Weil ich selbst möchte ja nichts reinschreiben, also nicht Manuell.

Und wie ist der Code für den Eventhandler? die 1. Auswahl heißt L"SC 250U", hat er automatisch in den Code generiert. Wie benutz ich jetzt diesen Wert? Mir ist nicht ganz klar in welcher Variable das jetzt ist usw.


Ich hatte mir das eigt. so überlegt, aber das funktioniert leider nicht^^, weil ich die genauen Befehle nicht weiß.


Code:
private: System::Void textBox1_TextChanged(System::Object^  sender, System::EventArgs^  e) 
			 
			 {
				if(comboBox1=L"SC 250U")
				{
					textBox1->Text = "4 oder 6";
					if(comboBox1->Items=L"SC 500U")
					{
						textBox1->Text = "6 bis 9";
					}
                                                                   [COLOR="YellowGreen"][I]hier würde noch eine IF-Bedingung hinzukommen[/I][/COLOR]

				}
				
			 }
 
Zuletzt bearbeitet:
Du hast doch geschrieben du willst den ausgwählten Text in der Textbox darstellen?

Der Ausgewählte Text liegt in der Combobox::SelectedItem Eigenschaft.

Wie du einen Eventhandler erstellst das schaust du aber mal selber dazu gibts zig Suchergebnisse wenn man richtig Googlet ;)
 
ja okay, aber in der ComboBox steht folgendes drin, in der Zeile von den Eigenschaften:

this->comboBox1->Items->AddRange(gcnew cli::array< System::Object^ >(3) {L"SC 250U", L"SC 500U", L"SC 500HE-US"});

das dicke ist jeweils ein Element in der Auswahlbox, wie kann ich denn eins von denen Benutzen? Mir ist nicht ganz klar welche Variable oder wie auch immer ich davor schreibe

if (ComboBox1.SelectedIndex == L"SC 250U")

?
 
Also nu, bitte stell dich nicht so an, und lies meine Posts richtig

if(comboBox::SelectedIndex == 0)//erstes element wurde ausgewählt
textBox::Text = "Test";

keine ahnung ob die syntax von c++/cli so richtig ist, aber so im rahmen sollte es funktionieren.

respektive

if(combobox::SeletedItem == "SC 250U")
//mnach irgendwas

Mir scheint so als wenn du dich dringend nochmal mit der Grundtechnik von Oberflächengestaltung und C++/CLI auseiander setzen musst.
 
joa das stimmt, das muss ich unbedingt tun. Hab bisher noch kein gut erklärtes Tut oder nen Guide gefunden.

Leider geht es mit den "::" nicht. Hab es jetzt mit "->" gemacht. Immerhin läuft das Programm jetzt wieder! Nur leider werden die Werte, die in der TextBox angezeigt werden sollen nicht angezeigt.
Code:
 if(comboBox1->SelectedItem=="SC 250U")
				{
					textBox1->Text = "4 oder 6";
					if(comboBox1->SelectedItem=="SC 500U")
					{
						textBox1->Text = "6 bis 9";
						
						if(comboBox1->SelectedItem=="SC 500HE-US")
						{
							textBox1->Text = "6 bis 9";
						}
						else
						{
							textBox1->Text = "";
						}
					}
				

				}
 
Deine Textbox ist ReadOnly, das heißt es kann nichts reingeschrieben werden nachdem sie erstellt wurde.
Heißt also, bevor du etwas in die Textbox machst, machst du

Code:
textbox->ReadOnly = false;
textbox->Text = "hallo";
textbox->ReadOnly = true;
 
so eben meint ein Softwareentwickler von hier, dass man es auch so machen kann, anstatt ReadOnly zu verändern.



Code:
if(ComboBox1->SelectedItem=="SC 250U")
{
		textBox->Text = "4 oder 6";
		textBox->Refresh();
 }

danke für deine Hilfe! ;)

und meine If-Bedingungen musste ich noch mal überarbeiten, die waren leider falsch^^
Code:
If
{ 
}
else
{
    if()
    {		
     }
    else
    {
          if()
          {
           }
          else
          {
          }
     }
}

für all die, die auch mal meine Frage haben^^, damit sie sich nicht wundern wieso meine If-Bedingung falsch war.
 
Zuletzt bearbeitet:
Zurück
Oben