C# 修改继承控件的外观

C# 修改继承控件的外观,c#,winforms,telerik,radgridview,C#,Winforms,Telerik,Radgridview,我有一个来自Telerik的专有组件,叫做RadGridView。这是一个简单的GridView,具有一些扩展功能。关于它没什么好说的,它只是一个控件。 我想为它添加分页支持,所以我创建了这个复合控件: 其实没什么,只是一个带有填充停靠属性的RadGridView,上面有一个带有顶部停靠属性的工具栏 这种方法的问题在于它与RadGridView的接口不匹配。我需要用这个替换RadGridView的每一次出现,这可能是非常有问题的 我需要找到一种方法,通过继承RadGridView来做同样的事情

我有一个来自Telerik的专有组件,叫做RadGridView。这是一个简单的GridView,具有一些扩展功能。关于它没什么好说的,它只是一个控件。
我想为它添加分页支持,所以我创建了这个复合控件:

其实没什么,只是一个带有填充停靠属性的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添加元素: