几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(VB.NET/C#)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


 
 
主题工具 搜索本主题 显示模式
旧 2009-04-21, 03:29 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】根据配置文件生成<抽屉式工具栏控件>_初学者做

根据配置文件生成<抽屉式工具栏控件>_初学者做
www.dimcax.com
根据配置文件生成<抽屉式工具栏控件>_初学者做
工具栏代码比较简单,界面引用developer express .net的xtranavbar生成根据自定义的mdb配置文件生成group及itemlink 反射没学会,暂时不会调用方法,希望高手指教! public partial class commandcontrol : devexpress.xtraeditors.xtrausercontrol { public commandcontrol(string configfile,string commandname) { initializecomponent(); initialize(configfile, commandname); } private static datatable items; //初始化工具栏 private void initialize(string configfile, string commandname) { oleadapter ole = new oleadapter(); datatable groups = ole.execuate(configfile,"select * from " + commandname + "_groups"); items = ole.execuate(configfile, "select * from " + commandname + "_items"); acadeditorclass ae = new acadeditorclass(); try { if (groups == null || items == null) return; string imagefile = ""; foreach (datarow row in groups.rows) { navbargroup navbargroup = null; navbargroup = navbarcontrol.groups.add(); navbargroup.name = (string)row["groupname"]; navbargroup.caption = (string)row["groupcaption"]; navbargroup.groupstyle = (navbargroupstyle)enum.parse (typeof(navbargroupstyle), row["groupstyle"].tostring()); navbargroup.expanded = (bool)row["expanded"]; imagefile = row["groupimage"].tostring(); if (imagefile != "" && ae.findfile(imagefile) != "") navbargroup.smallimage = image.fromfile(ae.findfile(imagefile)); string[] itemstring = row["items"].tostring().split('|'); foreach (string stritem in itemstring) { datarow[] rows = items.select("itemname = '" + stritem + "'"); if (rows != null) { navbaritem item = navbarcontrol.items.add(); item.name = (string)rows[0]["itemname"]; item.caption = (string)rows[0]["itemcaption"]; imagefile = rows[0]["image16"].tostring(); if(imagefile!=""&&ae.findfile(imagefile) !="") item.smallimage = image.fromfile(ae.findfile(imagefile)); imagefile = rows[0]["image32"].tostring(); if (imagefile != "" && ae.findfile(imagefile)!="") item.largeimage = image.fromfile(ae.findfile(imagefile)); navbargroup.itemlinks.add(item); navbarcontrol.activegroup = navbargroup; navbargroup.expanded = true; item.linkclicked += new devexpress.xtranavbar.navbarlinkeventhandler(navbaritem_linkclicked); } } } } catch { return; } finally { if (groups != null) groups.dispose(); if (items != null) items.dispose(); } } /// /// 执行鼠标点选的itemlink /// /// /// private void navbaritem_linkclicked(object sender, devexpress.xtranavbar.navbarlinkeventargs e) { string itemname = e.link.item.name; datarow[] rows = items.select("itemname = '" + itemname + "'"); if(rows!=null) { if ((bool)rows[0]["commandline"]) acadpropers.documentmanager.mdiactivedocument.sendstringtoexecute ((string)rows[0]["command"] + "\n", false, false, true); //(string)rows[0]["command"]为cad的命令或函数 else { //反射没学会,暂时不会调用方法,希望高手指教! } } } } [
(13.08 kb)
下载次数:1


下载次数:22

下载次数:19
["command"] + "\n", ture, false, true);
厉害
书山有路勤为径,学海无涯苦作舟!
反射请用type类别的invokemember方法~ 那个让lisp调用.net库就是用反射的方式通过字符调用的哈
谢谢,昨天请教了c#高手大概知道了反射的调用方法我想用c#直接调用反射
不好意思,拿了个办成品出来下面这段是调试的时候加上的忘了删了,调用后所有的group都会展开配置文件中的expand项会不起作用 navbarcontrol.activegroup = navbargroup; navbargroup.expanded = true;
小狼

我只找到了 v6.7,希望你能提供你所用的版本


1
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
 


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 12:26 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多