vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Farbe ändern bei Dynamische Panels 
Autor: Manfred X
Datum: 17.05.16 06:14

Du könntest diese Funktionalität evt. in das
abgeleitete Control integrieren.
Imports System.Windows.Forms
Imports System.Drawing
 
 
Public Class LinePanel
    Inherits Panel
 
    Private LineColor As Color = Color.Black 'Default
 
 
    Public Sub New()
        MyBase.new()
        Me.Size = New Size(100, 5)
        Me.BackColor = Color.White
    End Sub
 
 
    Protected Overrides Sub OnPaintBackground _
        (e As System.Windows.Forms.PaintEventArgs)
 
        MyBase.OnPaintBackground(e)
 
        If Me.Width < 5 Or Me.Height < 5 Then Exit Sub
 
        'Linie im Hintergrund zeichnen
        Dim pt1, pt2 As Point
        GetLinePoints(pt1, pt2)
        Using p As New Pen(LineColor, 2)
            e.Graphics.DrawLine(p, pt1, pt2)
        End Using
    End Sub
 
 
    Protected Overrides Sub OnMouseDown _
        (e As System.Windows.Forms.MouseEventArgs)
 
        MyBase.OnMouseDown(e)
 
        If e.Button = MouseButtons.Right Then
            If Me.Width < 8 Or Me.Height < 5 Then Exit Sub
 
            Dim pt1, pt2 As Point
            GetLinePoints(pt1, pt2)
 
            'Bereich der zu zeichnenden Line
            Dim rc As New Rectangle _
                (pt1.X, pt1.Y - 1, pt2.X - pt1.X, 3)
 
            If rc.Contains(e.Location) Then
                'Dialog für Linienfarbe 
                'falls auf die Panel-Linie geclickt worden ist
                Using cd As New ColorDialog
                    cd.Color = LineColor
                    If cd.ShowDialog = DialogResult.OK Then
                        LineColor = cd.Color
                        Me.Invalidate(rc) 'Linie neu zeichnen
                    End If
                End Using
            End If
        End If
    End Sub
 
 
    Private Sub GetLinePoints(ByRef pt1 As Point, ByRef pt2 As Point)
        'Position der Line - Anfangs- und Endpunkt 
        pt1 = New Point(3, Me.Height \ 2)
        pt2 = New Point(Me.Width - 3, Me.Height \ 2)
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Farbe ändern bei Dynamische Panels2.320henrikl200012.05.16 22:05
Re: Farbe ändern bei Dynamische Panels1.578Manfred X13.05.16 06:25
Contextmenü bei dynamisch erstellten Controls (Beispiel)1.523Manfred X13.05.16 07:53
Re: Farbe ändern bei Dynamische Panels1.497henrikl200016.05.16 13:10
Re: Farbe ändern bei Dynamische Panels1.431Manfred X16.05.16 13:56
Re: Farbe ändern bei Dynamische Panels1.497Manfred X17.05.16 06:14
Re: Farbe ändern bei Dynamische Panels1.412henrikl200018.05.16 09:31

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel