Adding a solid dashed line handle collection to the combo box

This is an extension of this C # question override OnDrawItem I created this class class with a list

class LineStyleComboBox: System.Windows.Forms.ComboBox { Pen SolidPen; Pen DashedPen; public LineStyleComboBox() { this.DropDownStyle = ComboBoxStyle.DropDownList; this.DrawMode = DrawMode.OwnerDrawFixed; } protected override void OnDrawItem(DrawItemEventArgs e) { float[] dashValues = { 5, 2, 15, 4 }; if (e.Index > -1) { int startX = e.Bounds.Left + 5; int startY = (e.Bounds.Y + e.Bounds.Height / 2); int endX = e.Bounds.Right - 5; int endY = (e.Bounds.Y + e.Bounds.Height / 2); using ( SolidPen = new Pen(Color.Blue, (Int32)this.Items[e.Index])) { e.Graphics.DrawLine(SolidPen, new Point(startX, startY), new Point(endX, endY)); } using ( DashedPen = new Pen(Color.Blue, (Int32)this.Items[e.Index])) { e.Graphics.DrawLine(DashedPen, new Point(startX, startY), new Point(endX, endY)); DashedPen.DashPattern = dashValues; } } base.OnDrawItem(e); } } 

In another form, where I need to use this LineStyleComboBox, I would like to add a collection of pen styles as elements. This is so that I can create a combo box with line styles as elements (solid handle, dotted handle).

 private void frmDlgGraphOptions_Load(object sender, EventArgs e) { lineStyleComboBox2.Items.Add(solidpen,dashed pen) } 
0
source share
1 answer

You should look at using the WPF control built into the WinForms application. You can do whatever you want with the WPF control.

This example is right up your mall. This is a combo box with customizable graphic elements.

http://www.switchonthecode.com/tutorials/wpf-tutorial-using-wpf-in-winforms

0
source

All Articles