Ich entwerfe gerade einen WinForms-Musikplayer, und ich habe einige Probleme herauszufinden, was ich einstellen soll Taste funktioniert, wenn die Taste überMethode zum Festlegen der Funktionsweise einer Schaltfläche bei Verwendung von Controls.Add (neue Schaltfläche() {}) in einer Schleife
Controls.Add(new Button(){})
der Code ich benutze derzeit erstellt wird, ist eine while-Schleife, innerhalb dessen der Code eine Schaltfläche Namen erstellen + x, wobei x ein Wert, der am Ende Schritten die Schleife. Was ich tun möchte, ist es so einzustellen, dass beim Klicken auf die Schaltfläche die Funktion zum Abspielen von Musik mit dem Namen "mpPlay" ausgeführt wird. Was wäre der beste Weg, dies zu tun?
Hier ist der aktuelle Code Ich verwende:
while (trackNoReader.Read())
{
flpTrackNo.Controls.Add(new Button()
{
Name = "btnTrackNo" + x,
Text = trackNoReader[0] as string,
BackColor = Color.Transparent,
FlatStyle = FlatStyle.Flat,
AutoSize = false,
Dock = DockStyle.Top,
Width = flpArtist.Width,
ForeColor = ColorTranslator.FromHtml("#444444"),
Font = new Font("Trebuchet MS", 9),
Enabled = true,
TextAlign = ContentAlignment.MiddleLeft,
FlatAppearance =
{
BorderSize = 0
},
});
x++;
}
Wenn Sie den Quellcode sehen möchten, können Sie das Git Repository here herunterladen. Vielen Dank - Ross [EDIT]
Hier ist der Code für mpPlay()
public void mpPlay(int x, string Column)
{
MySqlCommand selectPath = new MySqlCommand("SELECT" + Column + "FROM Music WHERE TrackNo=" + x);
selectPath.Connection = DB.connect;
MySqlDataReader readerPath = selectPath.ExecuteReader();
while (readerPath.Read())
{
path = readerPath[0] as string;
path = path.Replace("\"", "\\");
}
mpPlayer.Open(path);
mpPlayer.Play();
}
Ihre Taste nichts tut, außer hübsch in diesem Panel sitzt. Sie können diesen Button so hart wie möglich knallen, aber ohne einen Click-Event-Handler wird nichts passieren. Zögere nie, deine eigene Klasse von Button abzuleiten, überschreibe OnClick, um etwas Nützliches zu tun und füge alle Eigenschaften hinzu, die du brauchst, um etwas Nützliches zu tun. Das kollabiert diesen Code zu einem Einzeiler. –