C# 修改继承控件的外观
我有一个来自Telerik的专有组件,叫做RadGridView。这是一个简单的GridView,具有一些扩展功能。关于它没什么好说的,它只是一个控件。C# 修改继承控件的外观,c#,winforms,telerik,radgridview,C#,Winforms,Telerik,Radgridview,我有一个来自Telerik的专有组件,叫做RadGridView。这是一个简单的GridView,具有一些扩展功能。关于它没什么好说的,它只是一个控件。 我想为它添加分页支持,所以我创建了这个复合控件: 其实没什么,只是一个带有填充停靠属性的RadGridView,上面有一个带有顶部停靠属性的工具栏 这种方法的问题在于它与RadGridView的接口不匹配。我需要用这个替换RadGridView的每一次出现,这可能是非常有问题的 我需要找到一种方法,通过继承RadGridView来做同样的事情
我想为它添加分页支持,所以我创建了这个复合控件: 其实没什么,只是一个带有填充停靠属性的RadGridView,上面有一个带有顶部停靠属性的工具栏 这种方法的问题在于它与RadGridView的接口不匹配。我需要用这个替换RadGridView的每一次出现,这可能是非常有问题的
我需要找到一种方法,通过继承RadGridView来做同样的事情。它是一个可继承的控件,其所有方法都是虚拟的。我不知道该怎么做,就是如何修改它的外观,使toolstrip栏显示为停靠在RadGridView的正上方。我已经读到我应该修改OnPaint事件,但是我不知道从那以后该怎么做。从RadGridView继承时,Visual Studio上的设计器也不允许我修改其外观 一种简单的方法是:
class CustomButton : Button
{
protected override void OnPaint(PaintEventArgs pevent)
{
TextBox tb = new TextBox();
tb.Width = 100;
tb.Height = 20;
tb.Top = this.Top - 20;
tb.Left = this.Left;
this.Parent.Controls.Add(tb);
base.OnPaint(pevent);
}
}
编译后,您将在工具箱中看到可用的控件。
当然,您可以使用这些属性,但这是最基本的。因此,创建一个表示分页的自定义控件,并以这种方式添加它
解决方案2:
创建一个复合控件(就像您所做的那样),并将RadGridView作为该控件的属性公开。这里已经有一个示例演示了分页: 下面是一个示例,演示如何向RadGridView添加元素: