c# textBox mit trackBar linken?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Hänge bei beiden Komponenten (TextBox und TrackBar) jeweils einen Event Handler für das TextChanged-Event an.

yourTrackBar.TextChanged += (sender, args) =>
{
  yourTextBox.Text = yourTrackBar.Text;
};

yourTextBox.TextChanged += (sender, args) =>
{
  yourTrackBar.Text = yourTextBox.Text;
};

JuffMa 
Beitragsersteller
 06.06.2021, 17:07

geht bei mir nicht gibt meldung:

Fehler CS0029 Der Typ "string" kann nicht implizit in "int" konvertiert werden.

0
regex9  06.06.2021, 17:09
@JuffMa

In meinem Code-Snippet wird nirgendwo ein Integer verwendet. Die Fehlerursache muss also von dir kommen.

0
Zahhak  06.06.2021, 21:01

Interessante Idee, allerdings sagt die Dokumentation (https://docs.microsoft.com/de-de/dotnet/api/system.windows.forms.trackbar.text?view=net-5.0) dazu:

Diese Eigenschaft ist für diese Klasse nicht relevant.

Sinnvoller wäre es da, im ValueChanged-Handler für die TrackBar die Text-Eigenschaft der TextBox auf yourTrackBar.Value.ToString() zu setzen und im TextChanged-Event der TextBox die Value-Eigenschaft der TrackBar mittels int.TryParse und etwas Drumherumcode entsprechend zu setzen.

Ausserdem wäre ein bool-Flag ausserhalb der Handler ganz sinnvoll, sonst landest du ganz schnell im Endlos-PingPong der beiden Events.

1
regex9  06.06.2021, 22:13
@Zahhak

Stimmt, die Anmerkung in der Dokumentation habe ich gar nicht gesehen.

0

Dann musst du jeweils Events setzen. Bei der Texbox wäre es das TextChanged Event. Das wird ausgeführt, wenn man in der Textbox was ändert und bei Trackbar must du schauen, welches Event dort richtig ist, habe die noch nie benutzt. Ich denke mal dass du Windows Forms benutzt? Wenn ja, dann kannst du bei den Eigenschaften auf den Blitz gehen, dort findest du alle Events

Am Ende kannst du dann die trackbar value beim trackbar event in textbox.text tun und umgekehrt