如何设计自定义控件?

文盲老顾
WEB应用领新星创作者
博客专家认证
2013-07-04 07:03:26
今天在制作WinForm界面的时候,突然想自己做一个用户控件,但是,在制作过程中碰到很多问题,希望大家能指点一下迷经。


namespace testUserControl
{
public class testClass1 : FlowLayoutPanel
{
public testClass1(){
InitializeComponent();
}

public class testCollection : List<testPanel>
{
}

public class testCollectionEditor
{
}

public class testDesigner
{
}

[Designer("testDesigner, System.Design")]
public class testPanel : Panel
{
public testPanel()
{
}
}

private testCollection _items = new testCollection();

[Description("test UI"), Editor("testCollectionEditor", typeof(UITypeEditor))]
public testCollection Items
{
get
{
return _items;
}
set
{
_items = value;
}
}
}
}


在录入以上代码后,设计界面就多出一个 testUserControl 的组件,可以将其拖到设计界面上,同时 Items 属性可以象 DataGridView 的 Columns 属性一样点开,进行属性追加

现在,问题来了。。。。

1、我在点开 Items 属性后,进行添加成员时,第一个成员永远没有设计类属性(比如 Name),然后,再次添加的时候,不管添加多少成员,永远都只有最后一个成员有设计类属性。
2、每次添加成员,他自动将成员列在设计界面下的图标区(比如 FolderBrowserDialog 出现的地方),而不能象 TagPage 一样。
3、在添加成员后,取消,然后图标区的对象都正常消失了,但再次点开,发现成员列表里有残留记录

求各位仔细指点,谢谢
...全文
300 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
文盲老顾 2013-07-10
  • 打赏
  • 举报
回复
问题描述不够清楚么? 其实,我只想做一个自定义控件,该空间继承 FlowLayoutPanel ,我对该控件增加一个属性 Items,在属性框里,Items属性是一个集合,可以象DataGridView 的 Columns、TabControl 的 TabPages 属性一样,可以点开一个对话框 在该对话框内可以增加删除排列新的继承自Panel的一个自定义对象,并且在对话框内将继承的属性和新定义的属性都列出来,可进行修改
_小黑_ 2013-07-10
  • 打赏
  • 举报
回复
引用 5 楼 superwfei 的回复:
问题描述不够清楚么? 其实,我只想做一个自定义控件,该空间继承 FlowLayoutPanel ,我对该控件增加一个属性 Items,在属性框里,Items属性是一个集合,可以象DataGridView 的 Columns、TabControl 的 TabPages 属性一样,可以点开一个对话框 在该对话框内可以增加删除排列新的继承自Panel的一个自定义对象,并且在对话框内将继承的属性和新定义的属性都列出来,可进行修改
......那你要写很多代码, 我 的理解是 你 想写一个 类似于dgv控件添加列的那样,添加一列就显示一列,但是你看到后台代码也是增加的,所以......
mnxm 2013-07-04
  • 打赏
  • 举报
回复
控件类 一般要继承自Control类 或 UserControl类
mnxm 2013-07-04
  • 打赏
  • 举报
回复
野比喵 大牛不是分享过一个标签云控件吗 其中就用到了FlowLayoutPanel csdnID:conmajia http://download.csdn.net/detail/conmajia/5600807
threenewbee 2013-07-04
  • 打赏
  • 举报
回复
指点迷津,你这汉语是体育老师教的? 看了半天也不知道你要做什么。你啥也没有实现。
人生导师 2013-07-04
  • 打赏
  • 举报
回复
http://www.cnblogs.com/Dennyzp/archive/2013/01/21/winformControl.html

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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