可定制外观组合框

Screenshot - demo.gif 介绍 这个类派生自。net ComboBox类。它提供了颜色和时尚定制来改变外观的ComboBox的边框和下拉按钮。可以为GotFocus和LostFocus状态定制一组独立的属性。这些属性可以从设计器内部自定义。 . net 2.0框架提供的最初的ComboBox控件在自定义外观的能力上非常有限。很多人已经创建了他们自己定制的ComboBox,而不是从。net框架的ComboBox派生。这可能是由于。net ComboBox的OnPaint函数无法访问ComboBox的文本框区域。你可以在构造函数中使用这个语句来重写OnPaint函数: 隐藏,复制Code

public CustomComboBox() : base()
{
    SetStyle(ControlStyles.UserPaint, true);
}

重新绘制ComboBox控件的另一种方法是重写WndProc函数。然而,对于许多c#、。net或Win32编程的初学者来说,这种方法可能非常复杂,特别是当他们想要不断地选择适合的颜色和样式来匹配他们的应用程序设计时。 背景 这个项目是对现有项目的扩展,由Fadrian Sudaman贡献的“使标准组合框看起来是平的”。我对Fadrian Sudaman使用WndProc在。net ComboBox控件上绘制的东西印象深刻。 使用的代码 这个类继承自。net ComboBox。 而不是使用: 隐藏,复制Code

ComboBox cboDemo = new ComboBox();

您可以使用: 隐藏,复制Code

ComboBox cboDemo = new CustomComboBox();
// or
CustomComboBox cboDemo = new CustomComboBox();

要使用这个类,读者需要了解。net ComboBox的标准函数、属性和事件,以及在这个继承的类中创建的一些新属性。 的兴趣点 我花了很多时间来修复这个继承控制的闪烁问题。我删除了很多不必要的代码,并简化了覆盖的WndProc函数。我还更改了几个“OnEvent”函数,并将Invalidate()移动到base.OnEvent(e)之前。 它仍然会闪烁,特别是当我将视频加速设置为无时。然而,我认为这应该将闪烁最小化到一个可接受的水平。 本文转载于:http://www.diyabc.com/frontweb/news333.html

原文地址:https://www.cnblogs.com/Dincat/p/13437628.html