Mega Code Archive

 
Categories / VB.Net Tutorial / GUI
 

ComboBox Cell renderer

Imports System.Windows.Forms Imports System.Drawing Imports System.Drawing.Drawing2D <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Class Form1     Inherits System.Windows.Forms.Form     'Form overrides dispose to clean up the component list.     <System.Diagnostics.DebuggerNonUserCode()> _     Protected Overrides Sub Dispose(ByVal disposing As Boolean)         If disposing AndAlso components IsNot Nothing Then             components.Dispose()         End If         MyBase.Dispose(disposing)     End Sub     'Required by the Windows Form Designer     Private components As System.ComponentModel.IContainer     'NOTE: The following procedure is required by the Windows Form Designer     'It can be modified using the Windows Form Designer.       'Do not modify it using the code editor.     <System.Diagnostics.DebuggerStepThrough()> _     Private Sub InitializeComponent()         Me.XButton = New System.Windows.Forms.Button         Me.ColorList = New System.Windows.Forms.ComboBox         Me.SuspendLayout()         '         'XButton         '         Me.XButton.Location = New System.Drawing.Point(112, 24)         Me.XButton.Name = "XButton"         Me.XButton.Size = New System.Drawing.Size(75, 23)         Me.XButton.TabIndex = 0         Me.XButton.Text = "Button1"         Me.XButton.UseVisualStyleBackColor = True         '         'ColorList         '         Me.ColorList.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed         Me.ColorList.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList         Me.ColorList.FormattingEnabled = True         Me.ColorList.Location = New System.Drawing.Point(88, 64)         Me.ColorList.Name = "ColorList"         Me.ColorList.Size = New System.Drawing.Size(121, 21)         Me.ColorList.TabIndex = 1         '         'Form1         '         Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)         Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font         Me.ClientSize = New System.Drawing.Size(292, 221)         Me.Controls.Add(Me.ColorList)         Me.Controls.Add(Me.XButton)         Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle         Me.MaximizeBox = False         Me.Name = "Form1"         Me.Text = "Control Drawing"         Me.ResumeLayout(False)     End Sub     Friend WithEvents XButton As System.Windows.Forms.Button     Friend WithEvents ColorList As System.Windows.Forms.ComboBox End Class Public Class Form1     Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load         ColorList.Items.Add("Red")         ColorList.Items.Add("Orange")         ColorList.Items.Add("Yellow")         ColorList.Items.Add("Green")         ColorList.Items.Add("Blue")         ColorList.Items.Add("Indigo")         ColorList.Items.Add("Violet")     End Sub     Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint         e.Graphics.DrawEllipse(Pens.Black, 10, 10, Me.ClientRectangle.Width - 20, _             Me.ClientRectangle.Height - 20)     End Sub     Private Sub XButton_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles XButton.Paint         Dim usePen As Pen         e.Graphics.Clear(SystemColors.Control)         usePen = New Pen(SystemColors.ControlText, 3)         e.Graphics.DrawRectangle(usePen, XButton.ClientRectangle)         usePen.Dispose()     End Sub     Private Sub ColorList_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ColorList.DrawItem         Dim useBrush As Brush         If (e.Index = -1) Then Return         e.DrawBackground()         useBrush = New SolidBrush(Color.FromName(CStr(ColorList.Items(e.Index))))         e.Graphics.FillRectangle(useBrush, _             e.Bounds.Left + 2, e.Bounds.Top + 2, _             e.Bounds.Width - 4, e.Bounds.Height - 4)         useBrush.Dispose()         e.Graphics.DrawRectangle(Pens.Black, _             e.Bounds.Left + 2, e.Bounds.Top + 2, _             e.Bounds.Width - 4, e.Bounds.Height - 4)         e.DrawFocusRectangle()     End Sub     Private Sub XButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles XButton.Click         MsgBox("Button clicked.")     End Sub End Class public class ComboBoxCellRenderer    public Shared Sub Main         Application.Run(New Form1)    End Sub End class