Visual Studio, C#: Einen Variablen Button z.B. färben?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hallo Diabetiger,

als erstes erstellst du in deinem Script (Standardname ist meistens "Form1.cs") eine Methode mit folgender Signatur:

private void ChangeColor(object sender, EventArgs e)
{
}

Ich habe die Methode ChangeColor genannt, damit man sie besser identifizieren kann.
Die Parameter sind wichtig, damit ein Button die Methode bei einem Click-Ereignis aufrufen kann.

Als nächstes fügst du die Methode jedem Button hinzu. Ich gehe mal davon aus, dass du das hinbekommst, ansonsten einfach kurz melden.

Wenn das erledigt ist, noch schnell der Code für die Methode ChangeColor. Ich bin der Einfachkeithalber davon ausgegangen, dass du mit jedem Klick zwischen den beiden Farben Color.Blue und Color.White wechseln möchtest. Falls du eine andere Funktionalität verfolgen möchtest, weißt du nun zumindest, wie du den Button in dieser Funktion benutzen kannst.

private void ChangeColor (object sender, EventArgs e)
{
// Als erstes den Button holen.
// Dieser steckt im sender object
Button btn = (Button) sender;

// Wechseln zwischen den Farben
if (btn.BackColor == Color.White)
btn.BackColor = Color.Blue;
else
btn.BackColor = Color.White;
}

Ich hoffe, ich konnte dir helfen.
Bei Fragen einfach melden!

Mit freundlichen Grüßen

Ich bin mir zwar nicht sicher, aber ich glaube, dass im ClickEvent der Parameter sender As Object den Button mitliefert, der geklickt worden ist, das heißt, dass du wahrscheinlich z. B. sender.BackColor=Color.Blue schreiben musst. Wie gesagt, damit habe ich noch nie gearbeitet, aber es könnte funktionieren

Kann ich in Java Variablen innerhalb einer if-else-Abfrage verändern?

Hallo,

habe folgendes Problem: Möchte in Java ganz einfach einen int-Wert in einer if-Abfrage erhöhen. Gebe dafür einfach x++; ein. Dann steht bei den Fehlermeldungen:

Local variable x definded in an enclosing scope must be final or effectively final.

Keine Angst habe natürlich ganz klassisch die int-Variable erstellt :D.

Was soll ich machen, geht es überhaupt und welche Alternativen gibt es?

...zur Frage

C# gibt es ein datagridview.selectedrow anstatt datagridview.selectedrows bzw. etwas ähnliches?

Hallo, ich habe ein Problem mit meinem C# Code. Ich habe eine Klasse PersonDbContext.cs welche sozusagen meine Datenbank representiert. So sieht diese Klasse aus:

public class PersonDbContext : DbContext
	{
		public DbSet<Persons> Person { get; set; }
    public void AddPerson(Persons person)
    {
        Person.Add(person);
        SaveChanges();
        MessageBox.Show(@"Person wurde erfolgreich hinzugefügt.");
    }

    public void RemovePerson(Persons person)
    {
        Person.Remove(person);
        SaveChanges();
        MessageBox.Show(@"Person wurde erfolgreich gelöscht.");
    }
}

Diese Methoden werden dann in einem Button der Hinzufügen heißt sowie einem Button der Löschen heißt verwendet:

private void buttonHinzufügen_Click(object sender, EventArgs e)
		{
			var dlg = new PersonDialog();
			dlg.ShowDialog();
			var person = dlg.Persons;
        _db.AddPerson(person);
        _db.SaveChanges();
    }

    private void buttonLöschen_Click(object sender, EventArgs e)
    {
        var person = PersonDataGridView.SelectedRows;
        _db.RemovePerson(person);
        _db.SaveChanges();
    }

Der buttHinzufügen_Click funktioniert tadellos, nur funktioniert der buttonLöschen_Click nicht. Bei

_db.RemovePerson(person);

wird mir das person rot unterstrichen und folgende Fehlermeldung wird in der Error List angezeigt:

Gibt es irgendeine Möglichkeit statt SelectedRows irgendwie nur eine Row auszuwählen? Ich glaube nämlich das es daran liegt das es im Plural ist (Rows) und ich eben nur eine Person will?! Weil ich habe keine SelectedRow gefunden eben nur Rows.

Bitte helft mir.

...zur Frage

Visual Basic Button sperren

Ich möchte, dass ein Button gesperrt wird(also dass er dann nichts bewirkt, wenn man ihn drückt), wenn ein Timer aktiv ist. Das ist mein Code:

If Timer1.Enabled = True Then button1.enabled = False

aber irgendwie funktioniert das nicht.

...zur Frage

DEV C++ Zahlen sortieren hilfe

Ich muss ein Programm schreiben das irgendwelche 3 zahlen der größe nach sortieren mit der if abfrage kann da mir einer helfen. Danke.

...zur Frage

C# Wert zwischenspeichern und neu einlesen?

Hallo, ich habe eine Anwendung, in der ich eine Xml-Datei einlesen/öffnen kann (Benutzername und Passwort). Beim speichern kann ich dann eine neue Datei anlegen, in der das Passwort dann verschlüsselt ist. Wie kann ich das Passwort beim erneuten öffnen wieder entschlüsseln? Ich muss doch den Wert beim Speichern irgendwie zwischenspeichern und beim erneuten öffnen wieder ausgeben?

Variablen:

public string zwischenspeichern;
		private string cipherData;
		private byte[] chiperbytes;
		private byte[] plainbytes;
		private byte[] plainbytes2;
		private byte[] plainKey;

Code Verschlüsselung (funktioniert):

cipherData = textBoxVerschlüsselung.Text;
					plainbytes = Encoding.ASCII.GetBytes(cipherData);
					plainKey = Encoding.ASCII.GetBytes("01234567890abcdef");
					desObj.Key = plainKey;
					desObj.Mode = CipherMode.CBC;
					desObj.Padding = PaddingMode.PKCS7;
					MemoryStream ms = new MemoryStream();
					CryptoStream cs = new CryptoStream(ms, desObj.CreateEncryptor(), CryptoStreamMode.Write);
					cs.Write(plainbytes, 0, plainbytes.Length);
					cs.Close();
					chiperbytes = ms.ToArray();
					ms.Close();
textBoxVerschlüsselung.Text = Encoding.ASCII.GetString(chiperbytes);

Code Entschlüsselung: (funktioniert nicht):

System.IO.MemoryStream ms1 = new MemoryStream(chiperbytes);
				CryptoStream cs1 = new CryptoStream(ms1, desObj.CreateDecryptor(), CryptoStreamMode.Read);
            cs1.Read(chiperbytes, 0, chiperbytes.Length);
            plainbytes2 = ms1.ToArray();
            cs1.Close();
            ms1.Close();
            textBoxPasswort.Text = Encoding.ASCII.GetString(plainbytes2);

Entschlüsselung wird beim klick auf den Öffnen Button ausgeführt und Verschlüsselung beim klick auf den Speichern Button.

...zur Frage

In C# Namen alphabetisch ordnen?

Hey,

Ich programmiere mit C# und Visual Studio 2017, also ich habe eine Liste mit Namen, und ich will bei der Ausgabe haben, dass mir das ganze Alphabet angezeigt wird und bei dem jeweiligen Buchstaben die passenden Namen. also quasi so:

A

Auerbach Simone

B

C

Chrombacher Hans

D

Detlef Jakob

Dobmann Dana

E

F

usw.

mein Code ist bis jetzt der hier:

        for (char letter = 'A'; letter <= 'Z'; letter++) 
        { 
            Console.WriteLine(letter); //Schreibt alle Buchstaben von A bis Z
            Console.ReadKey();

            foreach (var studentName in _student)
            {
                if (studentName.Nachname.StartsWith() + " " + studentName.Vorname)
                {

                } 
            }

Ich weiß, dass ich dieses StartsWith brauche, aber was schreib ich denn da in die Klammer? Ich komm einfach nicht mehr weiter, habt ihr eine Idee? Weiß auch gar nicht sicher ob ich eine IF-Abfrage brauche.

Danke schon mal.

...zur Frage

Was möchtest Du wissen?