private void versuch_Click(object sender, EventArgs e) { Panel current = (Panel)sender; if (pickedColor == Color.Transparent) { return; } for (int i = 0; i < panelVersuche.GetLength(1); i++) { if (ColorPick.farbe(pickedColor) == auswahl[i]) //Wenn die Farbe schon gewählt wurde { MessageBox.Show("Keine doppelten Farben erlaubt !"); goto ende; } } for (int i = 0; i < panelVersuche.GetLength(1); i++) { if (current == panelVersuche[versuch, i]) //Wenn der Sender in der Reihe des aktuellen versuchs ist. { current.BackColor = pickedColor; auswahl[i] = ColorPick.farbe(current.BackColor); } } ende: pickedColor = Color.Transparent; }
/// <summary> /// Erzeugt die Panels und Groupbox der Farbwahl /// </summary> private void initFarbwahl() { //////////////////Rahmen////////////////////////////////////// farbwahlbox = new GroupBox(); farbwahlbox.Text = "Farbwahl"; farbwahlbox.ForeColor = Color.White; farbwahlbox.Font = new Font("Calibri", 12, FontStyle.Italic); farbwahlbox.Location = new Point(10, this.Height - SQUARE - 95); farbwahlbox.Width = 460; farbwahlbox.Height = 80; this.Controls.Add(farbwahlbox); farbwahlbox.BackColor = Color.Transparent; //////////////Panels zu Farbauswahl//////////////////////////// for (int i = 0; i < panelFarbwahl.Length; i++) { panelFarbwahl[i] = new Panel(); //////////////groesse////////// panelFarbwahl[i].Width = SQUARE; panelFarbwahl[i].Height = SQUARE; //////////////Positions////////// panelFarbwahl[i].Top = this.Height - SQUARE - 75; panelFarbwahl[i].Left = (i * SQUARE) + (i * 5) + 20; panelFarbwahl[i].BackColor = ColorPick.farbe(i); //Es wird jede Farbe 1x ausgewäht da i als index fungiert panelFarbwahl[i].Parent = this; panelFarbwahl[i].BringToFront(); panelFarbwahl[i].Click += panelFarbwahl_Click; } }
private void fillResult(int schwarz, int weiss) { for (int i = 0; i < schwarz; i++) //Zuerst die schwarzen Felder ausfüllen { panelSchwarzWeiss[versuch, i].BackColor = ColorPick.schwarz(); } for (int i = schwarz; i < schwarz + weiss; i++) //i wird auf den Wert von Schwarz gesetzt, da die weißen Felder direkt danach sein sollen { //Bei 0 würden die schwarzen überschrieben. panelSchwarzWeiss[versuch, i].BackColor = ColorPick.white(); } }
private void Resultpane_Load(object sender, EventArgs e) { for (int i = 0; i < res.Length; i++) { resultPanel[i] = new Panel(); resultPanel[i].Width = size; resultPanel[i].Height = size; resultPanel[i].Top = 100; resultPanel[i].Left = (i * size) + (i * 10) + this.Width / 4; resultPanel[i].BackColor = ColorPick.farbe(res[i]); resultPanel[i].Parent = this; resultPanel[i].BringToFront(); } }