Hallo,
ich habe eine Checkbox-Klasse erschaffen, die in Form eines Buttons
daherkommt (flat) und ein Image zur Anzeige nutzt statt Häkchen.
Dies ist jeweils eine runde LED (rot oder grün), die restliche Fläche
der rechteckigen Grafik ist transparent.
Solange die Checkbox im Unchecked-Zustand ist, sieht alles gut aus:
<
http://img845.imageshack.us/img845/6389/zwischenablage02.png>
Aber kurioserweise wird die Umgebung der grünen LED (Zustand: checked)
weiß eingefärbt:
<
http://img15.imageshack.us/img15/3526/zwischenablage01np.png>
Hat jemand eine Idee, warum dem so ist und wie man es beheben kann,
sodass die Umgebung farblich gleich bleibt?
Ein fertiges Mini-Testprojekt (VS2010), wo nur die LED mittels Button
getoggled wird, um den Effekt sichtbar zu machen, kann man hier
herunterladen:
<
http://www.file-upload.net/download-4217435/LedCheckboxTest.zip.html>
Die Klasse sieht so aus:
public partial class LedCheckbox : System.Windows.Forms.CheckBox
{
public LedCheckbox() : base()
{
this.CheckedChanged += new
System.EventHandler(this.LedCheckbox_CheckedChanged);
this.Image = this.Checked ? Properties.Resources.greenLEDt :
Properties.Resources.redLEDt;
this.Appearance = System.Windows.Forms.Appearance.Button;
this.AutoSize = true;
this.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.ForeColor = System.Drawing.Color.Transparent;
this.MinimumSize = new System.Drawing.Size(15, 15);
}
// Change the Image
private void LedCheckbox_CheckedChanged(object sender,
System.EventArgs e)
{
this.Image = this.Checked ? Properties.Resources.greenLEDt :
Properties.Resources.redLEDt;
}
}
Gruß
Martin
--
() ascii *ribbon* campaign - against html e-mail
/\
www.asciiribbon.org -
http://www.asciiribbon.org/index-de.html