Hallo,
ich programmiere gerade einen MP3-Player, der auch recht ansehnlich sein soll.
Leider ist vor allem bei TrackBars die gestrichelte Linie störend, die um das zuletzt verwendete Stuerelement erscheint. (Die Linie, die angibt, welches Stuerelemnt mit Tab angesteuert wurde^^).
Gibt es eine Möglichkeit, diese Linie auszublenden?!
Sauberer Weg fällt mir grad keiner ein, aber TabStop ausschalten, mit ShortCuts arbeiten und nach jedem Click der Form wieder den Focus geben?
lg
Programmieren ist der Wettkampf zwischen Programmierer die immer noch einfachere Programme schreiben
und Anwender die immer noch dümmer werden...
Der saubere Weg wäre, ein komplettes OwnerDraw des jeweiligen Controls.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
//edit: Sauberer und schneller 🙂
Programmieren ist der Wettkampf zwischen Programmierer die immer noch einfachere Programme schreiben
und Anwender die immer noch dümmer werden...
Mh OwnerDraw ist ein Fremdwort^^
Wenn ich das richtig verstanden habe, gibt es die Eigenschaft OwnerDraw nur bei ListViews, ComboBoxes und dergleichen, allerdings nicht bei Buttons und TrackBars.
Dann bin ich auf Paint bzw. OnPaint gestoßen, aber soll ich dann die Komponenten der Controls selber neu zeichnen, oder wie meinst du das?
Ja, genau das meinte ich.
Also, wirklich alles selber zeichnen. Nur so bekommst du den Fokusrahmen weg, da dieser ja eigentlich Windowsstandart ist, und somit halt immer da ist.
Das beste ist es, von dem Control ein eigenes abzuleiten und OnPaint überschreiben.
Wenn ich das richtig verstanden habe, gibt es die Eigenschaft OwnerDraw nur bei ListViews, ComboBoxes und dergleichen, allerdings nicht bei Buttons und TrackBars.
Stimmt. Ich meinte mit OwnerDraw halt alles selber zeichnen 🙂
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
Du kannst dafür Hilfsmittel aus dem Framework verwenden (ButtonRenderer-Klasse usw... und natürlich den VisualStyles-namespace)
Hallo Grosche,
bestimmt hilft dir auch [Tutorial] Zeichnen in Windows-Programmen (Paint/OnPaint, PictureBox)
Hallo Grosche,
Selberzeichnen muss man hier nichts. Einfach Control.ShowFocusCues auf false "setzen".
herbivore
Oh, sowas gibts? 🙂
Man lernt echt immer noch was dazu. Die Eigenschaft kenne ich wirklich noch gar nicht.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
Big THX
Man muss die Get-Methode überschreiben dann wird der Kasten nicht mehr angezeigt.
protected override bool ShowFocusCues
{
get
{
return false;
}
}
ABER:
Ich benutze die Skin-Engine "IrisSkin". Sobald diese aktiv wird, ist der Rahmen wieder da X(
Liegt wohl daran, dass IrisSkin ShowFocusCues beim Zeichnen nicht berücksichtigt. Wenn dem so ist, werde ich dort mal das Forum anhauen😉