CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

###自定义控件的设计时问题###

楼主dahaig(HarryPottor)2006-04-12 10:50:37 在 .NET技术 / C# 提问

自定义控件,如何能实现在设计时,不允许拖放任何其它控件在其上。  
  我现在的做法是  
  :  
  以下代码都是在设计器里的  
  public   override   void   Initialize(IComponent   component)  
  {  
  base.Initialize(component);  
   
  if   (Control   is   UserControl1)  
  {  
  mCon   =   (UserControl1)Control;  
   
   
  mDesignerHost   =   (IDesignerHost)  
  GetService(typeof(IDesignerHost));  
   
  mToolboxService   =   (IToolboxService)  
  GetService(typeof(IToolboxService));  
   
   
  mCon   .AllowDrop   =   true;  
  this.EnableDragDrop(true);  
  }  
  }  
   
  protected   override   void   OnDragEnter(System.Windows.Forms.DragEventArgs   de)  
  {  
  base.OnDragEnter(de);  
  de.Effect   =   DragDropEffects.None;  
  return;  
  }  
   
  1。现在的情况是,拖动工具箱button进入过程中,鼠标是不显示出来button的。鼠标抬起的时候也不放置button在控件中,但是鼠标上有button按钮附着着,再单击一下,就放置button在控件中了。  
   
  2。要是在Initialize方法中  
  mCon   .AllowDrop   =   false;//设置成false  
  this.EnableDragDrop(false);//设置成false  
  就跟没定义设计器一样了,可以任意拖放控件在其中。  
   
  请高手指教,谢谢!!!!!!!!!!!!!!! 问题点数:100、回复次数:21Top

1 楼flygoldfish(长江支流)回复于 2006-04-12 10:52:30 得分 0

一个属性就可以搞定,如果你设置是容器他就允许拖了,把它关掉Top

2 楼dahaig(HarryPottor)回复于 2006-04-12 10:57:13 得分 0

控件继承的是userControl  
  怎么设计属性?Top

3 楼misvcom(零下一度)回复于 2006-04-12 11:17:28 得分 10

用System.ComponentModel命名空间里面的属性Top

4 楼flygoldfish(长江支流)回复于 2006-04-12 11:17:44 得分 10

System.Object  
        System.MarshalByRefObject  
              System.ComponentModel.Component  
                    System.Windows.Forms.Control  
                          System.Windows.Forms.ScrollableControl  
                                System.Windows.Forms.ContainerControl  
                                System.Windows.Forms.Design.ComponentTray  
                                System.Windows.Forms.Panel  
   
   
   
  System.Object  
        System.MarshalByRefObject  
              System.ComponentModel.Component  
                    System.Windows.Forms.Control  
                          System.Windows.Forms.ScrollableControl  
                                System.Windows.Forms.ContainerControl  
                                      System.Windows.Forms.Form  
                                      System.Windows.Forms.PropertyGrid  
                                      System.Windows.Forms.UpDownBase  
                                      System.Windows.Forms.UserControl  
   
   
  你看看,UserControl本身是容器控件,所以,你定义的控件如果要滚动,最好是继承于ScrollableControl,否则更上一次或设置不可滚动属性  
   
  Top

5 楼dahaig(HarryPottor)回复于 2006-04-12 11:32:23 得分 0

继承ScrollableControl也是容器  
  继承System.ComponentModel.Component就成组件了Top

6 楼dahaig(HarryPottor)回复于 2006-04-12 15:37:27 得分 0

再顶下Top

7 楼dahaig(HarryPottor)回复于 2006-04-12 17:30:01 得分 0

顶起来,请高手帮忙!Top

8 楼soye()回复于 2006-04-13 13:39:22 得分 5

dingTop

9 楼wxdl1981(沉默之狼)回复于 2006-04-14 08:52:51 得分 10

This_ControlAdded(...)  
  {  
    this.Controls.Remove(e.Control);  
  }Top

10 楼liujiwe79(专业做控件)回复于 2006-04-14 10:15:34 得分 10

可以在构造器中写代码控制属性Top

11 楼pshy(无心)回复于 2006-04-14 11:22:35 得分 5

学习ing.......Top

12 楼dahaig(HarryPottor)回复于 2006-04-17 16:20:10 得分 0

以上办法都不行,继续顶!求高手!Top

13 楼juneapple123(小y)回复于 2006-04-19 10:48:18 得分 5

没搞过,学习ing...  
  帮你顶个Top

14 楼huangguangdou(人生最遗憾的,莫过于,轻易的放弃了不该放弃的)回复于 2006-04-19 10:53:47 得分 10

study  
  Top

15 楼qpl007(蓝色闪电)回复于 2006-04-21 09:37:56 得分 10

要让控件不是容器,直接继承自   Control   不就可以了。Top

16 楼dahaig(HarryPottor)回复于 2006-04-21 13:02:41 得分 0

不仅仅不是容器,而且要在设计时不允许拖放其它toolbox控件在其上  
  继承control仍然可以拖放其他控件在它上面Top

17 楼zhf777(八步)回复于 2006-04-26 15:07:37 得分 5

mark  
  顶Top

18 楼Murder9527(葫芦鬼)回复于 2006-04-26 15:23:03 得分 5

mark  
  Top

19 楼dahaig(HarryPottor)回复于 2006-04-30 13:43:07 得分 0

我是想靠设计器来实现Top

20 楼anthit()回复于 2006-05-09 10:00:39 得分 5

upTop

21 楼futurekiss2008(小林)回复于 2006-05-09 16:10:27 得分 10

把  
  mCon   .AllowDrop   =   false;  
  this.EnableDragDrop(true);  
  会怎么样呢?  
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:dahaig
  • misvcom
  • flygoldfish
  • soye
  • wxdl1981
  • liujiwe79
  • pshy
  • juneapple123
  • huangguangdou
  • qpl007
  • zhf777
  • Murder9527
  • anthit
  • futurekiss2008

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo