2009-06-12 8 views

Antwort

30

Wenn Sie nicht möchten, dass ein benutzerdefiniertes Steuerelement erstellen Sie dies versuchen:

Haken bis zu dem Paint-Ereignisse des Labels.

void label1_Paint(object sender, PaintEventArgs e) 
{ 
    ControlPaint.DrawBorder(e.Graphics, label1.DisplayRectangle, Color.Blue, ButtonBorderStyle.Solid); 
} 

von here Genommen durch Andrej Tozon

8

Ich lief auch in dieses Problem und endete mit einem Workaround.

Erstellen Sie ein benutzerdefiniertes Steuerelement, das aus einem Etikett besteht, das in ein Panel eingepackt ist.

Sie können dann das Panel verwenden, um Ihren Rahmen zu erstellen und seine Farbe zu ändern, was Sie wollen.

Ich habe festgestellt, dass es eine gute Idee ist (obwohl ein wenig zeitaufwendig), alle Steuerelemente in Ihrer Anwendung sowieso zu wickeln, denn wenn es darum geht herauszufinden, benötigen Sie eine benutzerdefinierte Eigenschaft, oder ändern Sie alle Ihre Steuerelemente Bei diesem Typ kannst du einfach das Basis-Steuerelement ändern und deine gesamte App ändern.

12

ich die Lösungen von robin.ellis kombiniert und orandov ein Ergebnis zu erhalten, die das Beste für mich gearbeitet. Ich habe ein benutzerdefiniertes Steuerelement erstellt, das das Label-Objekt geerbt hat und dann das OnPaint-Ereignis überschrieben hat.

Public Class nomLabel 
    Inherits Label 

    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) 
     MyBase.OnPaint(e) 

     ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle, myColor, ButtonBorderStyle.Solid) 
    End Sub 

End Class 

Danke für die Hilfe!

+0

wie verwendet man das? 'myLabel.BorderStyle = nomLabel'? – AdorableVB

+0

@AdorableVB, nomLabel ist ein benutzerdefiniertes Steuerelement, kein Rahmenstil. Sie würden nomLabel anstelle des Standard-Label-Steuerelements verwenden. – Stewbob

+0

yup, verstanden. habe meine gestern erstellt, aber die Grenze ist festgelegt. Ich möchte das 'ButtonBorderStyle.Solid', wenn Maus schwebte und' .None' wenn Maus verlassen. Code funktioniert nicht, und wenn ich ein benutzerdefiniertes Steuerelement verwende, wird der Code ebenfalls nicht angewendet. – AdorableVB