2013-04-10 74 views
1

我有一个来自Telerik的专有组件,名为RadGridView。这是一个简单的GridView,具有一些扩展功能。没什么可说的,它只是一个控制。
我很想分页支持添加到它,所以我创造了这个复合控件:修改继承控件的外观

enter image description here

没有太多吧,只是一个配有补对接财产RadGridView,与它上面的工具条吧具有顶部停靠属性。

这种方法的问题在于它与RadGridView的接口不匹配。我需要用这个替换RadGridView的每一个出现,这可能是非常有问题的。

我需要找到一种方法通过从RadGridView继承来做同样的事情。它是一种可继承的控制,它的所有方法都是虚拟的。我不知道该怎么做,就是如何修改它的外观,以便工具栏显示停靠在RadGridView的正上方。我读过我应该修改OnPaint事件,但我很困惑从哪里去。 Visual Studio中的设计者不允许我在从RadGridView继承时修改其外观。这样做的

回答

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