自定义控件设计时 与 运行时问题

酋长 2010-06-24 09:55:13
c# winform

我创建一个自定义复合控件UserControl1, 里面有一个ToolStripPanel容器,在自定义控件里面重写 Initialize 方法时候,
我动态定义一个ToolStrip控件,ToolStrip toolStrip = new ToolStrip(); 然后动态添加几个lable,button后。

在winform窗体中应用控件的时候,我能看到创建的toolstrip设计时状态及控件。

但是在winfrom的InitializeComponent()初始化中,只有usercontrol1,及toolstrippanel容器的注册信息。所以在运行时候,看不到toolstrip。

不知道是什么原因?
...全文
214 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanhuiqiao 2010-06-24
  • 打赏
  • 举报
回复
在UserControl1中有this.Controls.Add(toolStrip);
参考
cja03 2010-06-24
  • 打赏
  • 举报
回复
对了, ToolStrip 有没有添加到 ToolStripPanel 里面?
手动添加好像要处理一下的,它不会像拖控件进去一样,会自动设置高度等。
xy325432 2010-06-24
  • 打赏
  • 举报
回复
学习,帮你顶·
cja03 2010-06-24
  • 打赏
  • 举报
回复
这样测试一下,随便找个事件,比如 usercontrol.click ,把 工具栏的visiable 和 location 显示出来,确保它在可视范围内。
ztenv 2010-06-24
  • 打赏
  • 举报
回复
1、控件被挡住了,把控件换成不同的底色,
2、当控件显示出来后,遍历你控件上所有的子控件,看看没有显示出来的那个控件是不是存在;
然后再进行其它处理吧;
酋长 2010-06-24
  • 打赏
  • 举报
回复
toolStrip lable button,写在自定义控件的Initialize 中,动态生成的toolstrip,然后动态添加的了lable,button,然toolstrippanel。join(toolstrip)。然后EnableDesignMode(ToolStripPanel,)

在窗体中,添加自定义控件,能看到ToolStripPanel区域及里面生成的ToolStrip控件。

但是运行时,看不到该控件。不知道是否是整个复合控件做的有问题?
酋长 2010-06-24
  • 打赏
  • 举报
回复
我做的别的普通自定义控件都可以看到。

这次做了一个复合控件。上面有个菜单项,下面是个toolstrippanel控件,里面根据菜单动态创建了toolStrip。在设计时,能看到动态创建的toolStrip包括里面的项,但是运行时,看不到我的复合控件。
cja03 2010-06-24
  • 打赏
  • 举报
回复
晕,看成 ToolTip 了。


但是在winfrom的InitializeComponent()初始化中,只有usercontrol1,及toolstrippanel容器的注册信息
----------------------------------
toolStrip label button 你是不是写在 InitializeComponent 下面,而不是里面?
在 winform 中是不会自动生成这样的代码的。

但你说在运行时也看不到,比较奇怪。
ztenv 2010-06-24
  • 打赏
  • 举报
回复
先做个简单的,就放几个控件,看看是不是有这种问题,我写过很多自定义的控件,都没有遇到这种问题;
酋长 2010-06-24
  • 打赏
  • 举报
回复
。。。。不是控制的问题。。。
悔说话的哑巴 2010-06-24
  • 打赏
  • 举报
回复
不知道用颜色来控制可行否?
酋长 2010-06-24
  • 打赏
  • 举报
回复
在设计时可见,但是运行时不可见。
cja03 2010-06-24
  • 打赏
  • 举报
回复
toolStrip.Show(...)
倒霉熊 2010-06-24
  • 打赏
  • 举报
回复
帮你顶

110,534

社区成员

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

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

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