是否有相当于NumericUpDown的ComboBoxRenderer?

时间:2008-10-29 11:19:40

标签: c# .net

我想在自定义组件上绘制微调器控件,例如在NumericUpDown上找到的控件。如果我想绘制一个下拉按钮,我可以使用ComboBoxRenderer。 NumericUpDown是否有等效的ComboBoxRenderer?

2 个答案:

答案 0 :(得分:2)

原来有。请参阅VisualStyleElement.Spin class

答案 1 :(得分:0)

我不认为Windows窗体命名空间中存在ComboBoxRenderer。您需要使用interop和Theme API直接绘制UpDown控制箭头(旋转按钮)。我没有完整的样品,但您需要

[DllImport("uxtheme.dll", ExactSpelling = true, CharSet = CharSet.Unicode)]
public static extern IntPtr OpenThemeData(IntPtr hWnd, String classList);

[DllImport("uxtheme", ExactSpelling = true)]
public extern static Int32 DrawThemeBackground(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, ref RECT pRect, IntPtr pClipRect);

[DllImport("uxtheme.dll", ExactSpelling = true)]
public extern static Int32 CloseThemeData(IntPtr hTheme);

你可以在this page中找到所需的部分和状态(查找SPIN样式类及其相关的部分和状态)。