1

我有一个来自 Telerik 的专有组件,称为 RadGridView。这是一个带有一些扩展功能的简单 GridView。没什么好说的,就是一个控制。
我很想给它添加分页支持,所以我创建了这个复合控件:

在此处输入图像描述

它没有太多内容,只是一个带有 Fill 停靠属性的 RadGridView,上面有一个带有 Top 停靠属性的工具栏。

这种方法的问题在于它与 RadGridView 的界面不匹配。我需要用这个替换每次出现的 RadGridView,这可能会很成问题。

我需要通过从 RadGridView 继承来找到一种方法来做同样的事情。它是一个可继承的控件,它的所有方法都是虚拟的。我不知道该怎么做,是如何修改它的外观,使工具条栏出现停靠在 RadGridView 的正上方。我读过我应该修改 OnPaint 事件,但我对从那里去哪里感到困惑。从 RadGridView 继承时,Visual Studio 上的设计器也不允许我修改其外观。

4

2 回答 2

0

一种简单的方法是:

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 公开为该控件的属性。

于 2013-04-10T12:11:52.147 回答
0

这里已经有一个演示分页的示例:Gridview paging using CommandBar 和一个演示如何在此处向 RadGridView 添加元素的示例:向 RadGridView 添加元素

于 2013-04-10T12:24:42.883 回答