请教一个困扰了我很久的问题:WinForm程序被执行之后,……………

sutalon 2004-12-23 06:00:08
问题:

我在 vs.net 环境中新建了一个 Form 窗体,在Form 窗体的 [design] 时中,我先从

toolbox(工具箱)中拖出一个button放在Form 窗体上,当我用鼠标点击button控件后,

因为button控件被选中了,所以button控件的周围会出现 八个 小白框,白框把button

控件包围住,小白框的底部还有一圈阴影。

然而,当: WinForm程序被执行之后,点击它里面的 button 之后,button控件的周围不会出现

八个 小白框,请问用何种方式能做到:在程序运行中,button 控件被点击之后,可以出现八个

小白框????

谢谢!!!!
...全文
496 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
sutalon 2004-12-28
  • 打赏
  • 举报
回复
谢谢各位的帮助,小弟的问题基本已经解决!

尤其要谢谢 Jim3(Jim) !
sutalon 2004-12-27
  • 打赏
  • 举报
回复
ajieboy(洁),你在上面粘贴的是什么代码阿??
ajieboy 2004-12-27
  • 打赏
  • 举报
回复
唉,我当初也是看的头晕,不过公司原因没有做下去,怀念那段日子呀,真想坚持做下去。

http://www.52dotnet.com/form.jpg



host = new DefaultDesignerHost();
ComponentChangeService changeService = new ComponentChangeService();
host.AddService(typeof(System.ComponentModel.Design.IComponentChangeService), changeService);
host.AddService(typeof(System.ComponentModel.Design.IDesignerOptionService), new ICSharpCode.SharpDevelop.FormDesigner.Services.DesignerOptionService());
host.AddService(typeof(System.ComponentModel.Design.ITypeDescriptorFilterService), new TypeDescriptorFilterService());

host.AddService(typeof(System.Drawing.Design.IPropertyValueUIService), new PropertyValueUIService());

ExtenderService extenderService = new ExtenderService();
host.AddService(typeof(System.ComponentModel.Design.IExtenderListService), extenderService);
host.AddService(typeof(System.ComponentModel.Design.IExtenderProviderService),extenderService);

host.AddService(typeof(System.ComponentModel.Design.IDesignerHost), host);
host.AddService(typeof(System.ComponentModel.IContainer), host.Container);
host.AddService(typeof(System.ComponentModel.Design.IDictionaryService), new DictionaryService());
host.AddService(typeof(System.ComponentModel.Design.IEventBindingService), new EventBindingService(host));
host.AddService(typeof(System.ComponentModel.Design.ISelectionService), new SelectionService(host));

host.AddService(typeof(System.ComponentModel.Design.Serialization.INameCreationService), new NameCreationService(host));
host.AddService(typeof(System.ComponentModel.Design.IDesignerEventService), new DesignerEventService());

host.AddService(typeof(System.ComponentModel.Design.IReferenceService), new ReferenceService(host));


host.AddService(typeof(System.ComponentModel.Design.Serialization.IDesignerSerializationService), new FormDesign.DesignerSerializationService(host));


// Add toolbox service
host.AddService(typeof(IToolboxService), listView1);

PopulateToolbox(listView1);

host.Activate();

// host.TransactionClosed += new DesignerTransactionCloseEventHandler(TransactionFinished);

if (designPanel == null)
{
designPanel = new DesignPanel(host);
}
else
{
designPanel.Host = host;
}



// host.AddService(typeof(System.ComponentModel.Design.IMenuCommandService), new MenuCommandService(host, designPanel));

host.AddService(typeof(DesignPanel), designPanel);

host.AddService(typeof(System.ComponentModel.Design.IMenuCommandService), new CMConfig.MenuCommandService(host, designPanel));


designPanel.Location = new Point(0, 0);
designPanel.Dock = DockStyle.Fill;

// this.panel1.Controls.Add(designPanel);

listView1.designPanel = designPanel;
jamesfay 2004-12-27
  • 打赏
  • 举报
回复
可以做到,就是麻烦点
nga96 2004-12-27
  • 打赏
  • 举报
回复
真有意思,看看
sutalon 2004-12-27
  • 打赏
  • 举报
回复
sharpdevelop 的源码太多了,我看得头都很疼了,哈哈!
Jim3 2004-12-27
  • 打赏
  • 举报
回复
我做的是类似绘图软件的,用于建筑,工控等行业

如果模拟vs.net,参考sharpdevelop吧
sutalon 2004-12-27
  • 打赏
  • 举报
回复
Jim3(Jim) ,多谢你的指点!

我们是想做一个模拟 vs.net 的集成开发环境
spacecm 2004-12-27
  • 打赏
  • 举报
回复
等你们开发出这个集成开发环境,请告诉我,我一定顶
cdo 2004-12-27
  • 打赏
  • 举报
回复
直接用图片做成按钮效果吧。
runi 2004-12-27
  • 打赏
  • 举报
回复
自己画吧!
Jim3 2004-12-27
  • 打赏
  • 举报
回复
呵呵,楼主和我做的差不多啊,不知道是做什么用的,有空交流一下

在.Net中我知道的实现有两种方式:
1.利用Framework的自带的结构,有个例子,链接找不到了,用FormDesigner查应该可以查到
SharpDevelop用的也是这个,不过比较复杂,不易看懂
2.自己动手实现,虽然有点麻烦,不过还是不难的,这个也有程序可以参考,有本书叫<基于组件的开发>
第10章就是移动的例子,不过书有点贵

我用的是第2种方式,他的好处是不依赖Framework,很方便支持图形组件的移动等
sutalon 2004-12-27
  • 打赏
  • 举报
回复
多谢以上各位大虾的帮助,在下很是感谢!!
renweimin 2004-12-27
  • 打赏
  • 举报
回复
呵呵,不会
alexxzr 2004-12-27
  • 打赏
  • 举报
回复
学习
qingyuan18 2004-12-25
  • 打赏
  • 举报
回复
我晕~~这种效果用来作什么的?
egxsun 2004-12-25
  • 打赏
  • 举报
回复
这种效果要自己做了,在四周画上才行,以前在vb和c++builder里做过
timiil 2004-12-25
  • 打赏
  • 举报
回复
更详细的就是你拿着“EnvDTE" 在google搜索吧,奇怪你们要做设计器,应该一早就要用到这些对象的了。
ajieboy 2004-12-25
  • 打赏
  • 举报
回复
以前我作出来的就是这种效果。根据SharpDevelop来做的,控件不是平常new出来的控件的,是利用.net底层接口,用定义的host生成出来的,放在窗体上就有四周的方框。当时我看了一个来月的SharpDevelop源码才做出来,好好看看吧。
ffb 2004-12-24
  • 打赏
  • 举报
回复
做这个效果的话,不太容易哦
可以试试自己画,或者是放6个很小的控件在你要编辑的控件的周围
加载更多回复(19)

110,536

社区成员

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

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

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