Changer la couleur d'un petit cercle (dot) contenues dans le radio bouton rouge?
Comment puis-je changer la couleur d'un petit cercle (dot) contenues dans le radio bouton rouge dans l'utilisation de l'Application Winform VB.NET ou C#?
Égard, & Merci,
Dewi
==========================================================
Je vais partager, peut être utile à d'autres. Ce programme fonctionne.
Imports System.Drawing.Drawing2D
Public Class Form1
Public Class MyRadioButton
Inherits RadioButton
Private m_OnColor As Color
Private m_OffColor As Color
Public Sub New(ByVal On_Color As Color, ByVal Off_Color As Color)
m_OnColor = On_Color
m_OffColor = Off_Color
SetStyle(ControlStyles.SupportsTransparentBackColor, True)
BackColor = Color.Transparent
End Sub
Public Property OnColor() As Color
Get
Return m_OnColor
End Get
Set(ByVal value As Color)
m_OnColor = value
End Set
End Property
Public Property OffColor() As Color
Get
Return m_OffColor
End Get
Set(ByVal value As Color)
m_OffColor = value
End Set
End Property
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
MyBase.OnPaint(e)
Dim g As Graphics = e.Graphics
g.SmoothingMode = SmoothingMode.AntiAlias
Dim dotDiameter As Integer = ClientRectangle.Height - 17
Dim innerRect As New RectangleF(1.8F, 7.8F, dotDiameter, dotDiameter)
If Me.Checked Then
g.FillEllipse(New SolidBrush(OnColor), innerRect)
Else
g.FillEllipse(New SolidBrush(OffColor), innerRect)
End If
g.DrawString(Text, Font, New SolidBrush(ForeColor), dotDiameter + 17, 1)
End Sub
End Class
Dim objRadio As New MyRadioButton(Color.Blue, Color.Red)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
objRadio.Location = New Point(100, 100)
objRadio.Visible = True
Me.Controls.Add(objRadio)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If objRadio.Checked Then
objRadio.Checked = False
Else
objRadio.Checked = True
End If
End Sub
End Class
Vous devez vous connecter pour publier un commentaire.
Voici un winforms exemple d'un propriétaire tiré listbox en simulant une liste de composants radiobutton que vous pourriez utiliser pour ce que vous voulez.
Edit: Ici est un plus en profondeur Winforms contrôle personnalisé exemple.
ControlPaint.DrawRadioButton(e.Graphics, rect, ButtonState.Checked);
. Comment voudriez-vous changer cette option pour tracer un cercle rouge?J'ai pris l'OP du code VB comme base et avec un peu d'aide de MSDN sur l'utilisation de la PathGradientBrush venu avec cette derrived classe pour C#. Le vert et le rouge des boutons comme on le voit dans l'image ci-dessous sont à l'aide de mon code, les deux bleus sont la version régulière.
Si vous êtes curieux et vous voulez le code de la grosse boule rouge que je l'utilise pour tester la brosse fonctionnalités, vous pouvez y aller...
m_circle
estConvert.ToInt32(Math.Floor((Height - 7) / 2))
. Pourm_glint
c'est toujours un plus.