在.Net下进行MicroStation(GG)的开发(一)
网上对.Net下的MSGG二次开发的资料太少了,有的也只是一些VBA,MDL(MicroStation Develop Language or Library)一些资料。据Bentley公司说v9才直接支持.net。而v9要到2006年和longhorn一起出来。这次客户提出非要在MS(特指MicroStation)与.net一起开发。这几天总结了一点点经验,拿出来,以引玉来砸我。
打开VS2003,新建Windows Application应用程序,然后引用 MS安装目录下的Ustation.exe这个文件。再在命名空间下:
using MicroStationDGN;
在Form里放一个Button,双击给出事件。
如果这里有对GIS的MS在.NET下开发熟悉的(VS里对象浏览器浏览时一大堆方法与属性,不知道哪个才是我要的),希望能交流一下,项目比较紧,网上找不到相关资料,客户在催。
打开VS2003,新建Windows Application应用程序,然后引用 MS安装目录下的Ustation.exe这个文件。再在命名空间下:
using MicroStationDGN;
在Form里放一个Button,双击给出事件。
private void CallMS_Click(object sender, System.EventArgs e)
{
MicroStationDGN.Application msApp = new MicroStationDGN.ApplicationClass();
msApp.Caption="环保处GIS操作平台";
msApp.Visible=true;
//以下两种情况下,关闭主图,弹出的图都不会关闭。
//false意为非只读
msApp.OpenDesignFile(@"D:\Company\Bentley\Example\EastCity\DGN\StartUp.dgn",false,MicroStationDGN.MsdV7Action.msdV7ActionAskUser);
// msApp.OpenDesignFileForProgram(@"D:\Company\Bentley\Example\EastCity\DGN\StartUp.dgn",false); //用这个方法时,dgn文件不被打开,只出现一个背景
this.label1.Text=msApp.Path; //Form里的Label得到程序的路径
msApp.Width=700; //设置开启时MS的宽
msApp.Height=400; //设置开启时MS的高
this.label1.Text=msApp.UserName; //得到开启此程序的用户
msApp.ShowCommand("mdl load edit"); //将"Key In"窗口集成到操作界面上来
}
{
MicroStationDGN.Application msApp = new MicroStationDGN.ApplicationClass();
msApp.Caption="环保处GIS操作平台";
msApp.Visible=true;
//以下两种情况下,关闭主图,弹出的图都不会关闭。
//false意为非只读
msApp.OpenDesignFile(@"D:\Company\Bentley\Example\EastCity\DGN\StartUp.dgn",false,MicroStationDGN.MsdV7Action.msdV7ActionAskUser);
// msApp.OpenDesignFileForProgram(@"D:\Company\Bentley\Example\EastCity\DGN\StartUp.dgn",false); //用这个方法时,dgn文件不被打开,只出现一个背景
this.label1.Text=msApp.Path; //Form里的Label得到程序的路径
msApp.Width=700; //设置开启时MS的宽
msApp.Height=400; //设置开启时MS的高
this.label1.Text=msApp.UserName; //得到开启此程序的用户
msApp.ShowCommand("mdl load edit"); //将"Key In"窗口集成到操作界面上来
}
如果这里有对GIS的MS在.NET下开发熟悉的(VS里对象浏览器浏览时一大堆方法与属性,不知道哪个才是我要的),希望能交流一下,项目比较紧,网上找不到相关资料,客户在催。
阿里云优惠券领取地址:https://partner.aliyun.com/shop/35783975 ,需要更多优惠请联系QQ和微信:891115,热线:400-968-4968