高手接招--->如何为自定义控件添加这样的属性---较难

qixiao 2004-11-28 02:23:58
为自定义控件添加类似 DataGrid的TableStyles属性

我要在一个自定义控件中实现这样一个功能,动态为这个自定义控件添加一些button,并且让用户给每个button设置属性及事件映射,比如name、text,click等。

可不可以做个像DataGrid的TableStyles属性一样,在样式编辑器里添加每一个button,并设置属性、事件?
...全文
312 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qixiao 2004-11-29
  • 打赏
  • 举报
回复
up
maybelian 2004-11-29
  • 打赏
  • 举报
回复
第五步漏写了一些东西,需要在自定义控件中添加一个ButtonsCollection类型的子域,并初始化该域,再用添加的Items公共属性来存取该域。
maybelian 2004-11-29
  • 打赏
  • 举报
回复
其实你说所的就像LISTVIEW这样的控件的ITEM属性一样,该属性应为一集合类,要实现这样的功能,可以通过大概如下步骤实现:
1、你可以自己定义一个子类如命名为ButtonItem,该类包含一个button控件,并提供一个公共属性用于获取类中包含的button控件。
2 自定义一个集合类(如命名为ButtonsCollection),该集合的项为ButtonItem类型,同时实现集合的基本方法和属性,另外在集合类中还需添加一个子域,该域类型应为你自己定义的控件类(假设命名为ButtonsControl),
这里假设为private mParentControl as ButtonsControl
3、修改初始化函数为public sub new(pMyControl as ButtonsControl),在该函数中初始化mParentCotnrol,并添加类似如下的语句:
mParentCotnrol=pMyControl
4、在集合类中的ADD方法里,将ButtonItem实例添加到集合中,并将ButtonItem中的Button控件添加到mParentControl.Cotnrols集合中.
5.在自定义控件中添加一个类型为ButtonsCollection属性Items,这样你在属性设计器里就可以通过items属性来添加你所说的button控件,并修改button的一些公共属性。

webdiyer 2004-11-28
  • 打赏
  • 举报
回复
参考这个:http://www.metabuilders.com/Tools/DefaultButtons.aspx
兔子-顾问 2004-11-28
  • 打赏
  • 举报
回复
我语文不好,实在不理解你的意思。祝你早点找到方法。我好看看你要做什么。
qixiao 2004-11-28
  • 打赏
  • 举报
回复
我要的是给控件一个属性,通过这个属性由用户来添加其他的控件,而不是如何往这个控件上添加其他控件
qixiao 2004-11-28
  • 打赏
  • 举报
回复
to wuyazhe(Love Is A Word.)

首先谢谢你
然后麻烦你再好好看看我的要求:)
兔子-顾问 2004-11-28
  • 打赏
  • 举报
回复
继承DataGrid。然后给这个新的类添加一些方法。
增加控件/动态绑定事件/删除控件/解除绑定
public sub addControl(byref obj as button , byval width as int32,byval height as int32_
,byval x as int32 , byval y as int32 ,byval name as string)
'这里的参数的意义:
'obj是你添加的控件,这个函数是添加button,width,height不用说了吧。x,y 是在datagrid的坐标
'name是控件名
obj = new button(name)
obj.width = width
obj.height = height
obj.size.x = x
obj.size.y = y
end sub
同样,你需要添加其他的控件,就重载这个添加控件的sub。也可以写成function,返回添加状态

然后是添加事件:

public sub addEvent(byref obj as button,...)
addhandle me.obj ...
end sub

添加事件比较麻烦。没想好了。

兔子-顾问 2004-11-28
  • 打赏
  • 举报
回复
楼上的答案都可以满足你的要求。你好好理解,解决问题不只靠问的。别人说了,你起码的尊重就是认真的想想别人回答的是否真的是跑题了,还是你自己没理解。
qixiao 2004-11-28
  • 打赏
  • 举报
回复
to wuyazhe(Love Is A Word.)

我的自定义控件不是DataGrid

to webdiyer大哥

那些东西我一点也看不懂

to lzmtw

Editor?

我要做的这个控件是由一些按钮组成的一个类似于菜单的东西,由于这些按钮的特征是由用户来设计的,所以要为这个用户控件加一个属性,可以让用户来设计这些按钮!

表达能力太差了,哎
水如烟 2004-11-28
  • 打赏
  • 举报
回复
请参考Editor

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧