In C # Winforms gibt es eine Möglichkeit, um alle Steuerelemente mit einem gepunkteten Rand zu versehen und bei Auswahl bestimmter Steuerelemente zur Laufzeit Griffpunkte anzuzeigen?

Ich arbeite in einem Team an einer IDE, die Visual Studio ähnelt, um benutzerdefinierten Winform-Code für unsere lokalen Clients zu entwickeln. In unserem Code haben wir Benutzersteuerelemente überschrieben, um unsere Aufgaben zu vereinfachen, aber die meisten unserer Steuerelemente sind von grundlegenden C # Winform-Steuerelementen abgeleitet.

Ich benötige derzeit Hilfe bei der Implementierung von gepunkteten Rahmen um alle unsere Steuerelemente mit den von Visual Studio bereitgestellten Griffpunkten.

Unselected Controls

Ausgewählte Steuerelemente

Diese Funktion ist sehr gefragt, da sie bei der Ausrichtung nach visuellen Richtlinien ohne Kompensation helfen kann.

Wir haben derzeit einen dunklen Rand um alle Steuerelemente mithilfe von @ implementier

this.BackColor = Color.Black;
this.Height = ComboBox.Height + 4;

Welche einen schwarzen Rand um die generierten Controls setzt, die im obigen Code-Snippet eine ComboBox sind.

in Mitglied wies uns auf die Verwendung von Rändern und Abstand hin, wie in der Microsoft-Dokumentation gezeighttps: //msdn.microsoft.com/library/3z3f9e8b (v = vs.110)

Aber das ist meistens Theorie und scheint nicht viel zu helfen. Das nächstgelegene Mittel zur Lösung dieses Problems war bisher ein onlineCodeProject link:

public class MyGroupBox : GroupBox
{
    protected override void OnPaint(PaintEventArgs e)
    {
    base.OnPaint(e);
    ControlPaint.DrawBorder(e.Graphics, ClientRectangle,
        Color.Black, BORDER_SIZE, ButtonBorderStyle.Inset,
        Color.Black, BORDER_SIZE, ButtonBorderStyle.Inset,
        Color.Black, BORDER_SIZE, ButtonBorderStyle.Inset,
        Color.Black, BORDER_SIZE, ButtonBorderStyle.Inset);
    } 
}

Ich bin überrascht, dass meine Suche noch nicht genau mit meiner Suche übereinstimmt. Vielleicht verwende ich die falsche Terminologie, da ich kürzlich mit der Programmierung in dieser Domäne begonnen habe.

Ich glaube, dass zukünftige Online-Suchen von Vorteil sein werden, wenn dieses Problem gelöst wird. Wir freuen uns auf Hinweise von Personen mit Erfahrung in diesem Problem. Wirklich dankbar für jede Hilfe in dieser Richtung.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage