Frage von 1986danny1986, 36

C# Textfeld in button ausgeben?

Ich habe 8 Buttons in den Werten 1, 2,4,8,16,32,64,128, wenn ich im Textfeld die Zahl 36 eingebe dann soll der button 32 und 4 die Farbe wechseln. Wie programmiere ich das?

Antwort
von TomMetal, 9

Hallo,

Du hast uns gesagt, dass du mit der Programmiersprache C# arbeitest. Du möchtest jedoch etwas zu einem GUI-Element (dem Button) wissen. Deshalb ist es wichtig für uns zu wissen, mit welchem GUI-Framework du arbeitest.

Du wirst wahrscheinlich eine Desktopanwendung mit Visual Studio entwickeln und hast daher für C# die Wahlmöglichkeit Windows-Forms und WPF.

Falls du nicht weißt, welche du davon hast, schau mal auf den Screenshot. Welchen Projekttyp hast du beim Anlegen deines Projektes gewählt?

Antwort
von Belaro, 28

Das wäre so richtig hässlich aber was mir als allererstes in den Sinn kommt, wären mehrere ifs, wo du überprüfst, ob die eigegebene Zahl minus 128 grösser oder gleich 0 ist. Falls das so ist rechnet er das und überprüst dann den Rest bei den restlichen for. Aber wie gesagt ist das die hässliche Methode.

Antwort
von Tschoo, 14

Hallo!

Das gehjt zu den Ursprüngen der Programmierung zurück -- deine Zahlenfolge beschreibt genau ein Byte (8 Bit).

Also 0 0 0 0 0 0 0 0 --> alle Buttons sind gelb  (das Bit ganz rechts ist die 1, entspricht dem Button 1, Bit ganz links, entspricht dem Button 128)

du gibst 36 ein, wandle es in eine Zahl um, dann in ein Byte

du hast jetzt 0 0 1 0 0 1 0 0

--> dort wo die 1en sind, wechselst du die Farbe des Buttons

Gruß

Kommentar von 1986danny1986 ,

Ja das soll so gegen nur weiß ich nicht wie ich das eingeben kann

Antwort
von Omnivore08, 11

Leg dir die Buttons dynamisch an!

Speichere sie in ein Array. --> Button[] buttons;

Wenn du jetzt eine Zahl eingibst, dann durchgehst du folgende Schleife und hast damit jeden Button, der in der Bitfolge eine 1 hat:

int wert = textArea.Text; //36 //string to int nicht vergessen! Ich lass das mal zu anschauungszwecken weg ^^
for(int i=0 ; i<8 ; i++)
if(wert%2 == 0)
{
// hier sind jetzt deine einzelnen Buttons, dessen Bit=1 ist
//ändere jetzt hier die Farbe mit
buttons[i].BackColor = Color.Black;
}
wert/=2; // Bitverschiebung RECHTS

sollte funkzen.....ich würde es so machen!

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten