Laden...

Gestrichelte Linie um Controls unterbinden

Erstellt von Grosche vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.387 Views
G
Grosche Themenstarter:in
40 Beiträge seit 2008
vor 15 Jahren
Gestrichelte Linie um Controls unterbinden

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?!

W
201 Beiträge seit 2007
vor 15 Jahren

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...

3.511 Beiträge seit 2005
vor 15 Jahren

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)

W
201 Beiträge seit 2007
vor 15 Jahren

//edit: Sauberer und schneller 🙂

Programmieren ist der Wettkampf zwischen Programmierer die immer noch einfachere Programme schreiben
und Anwender die immer noch dümmer werden...

G
Grosche Themenstarter:in
40 Beiträge seit 2008
vor 15 Jahren

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?

3.511 Beiträge seit 2005
vor 15 Jahren

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)

2.760 Beiträge seit 2006
vor 15 Jahren

Du kannst dafür Hilfsmittel aus dem Framework verwenden (ButtonRenderer-Klasse usw... und natürlich den VisualStyles-namespace)

5.742 Beiträge seit 2007
vor 15 Jahren
49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Grosche,

Selberzeichnen muss man hier nichts. Einfach Control.ShowFocusCues auf false "setzen".

herbivore

3.511 Beiträge seit 2005
vor 15 Jahren

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)

G
Grosche Themenstarter:in
40 Beiträge seit 2008
vor 15 Jahren

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😉