都市夜猫的专栏

夫君子之行,静以修身,俭以养德。非淡泊勿以明志,非宁静勿以致远。

vfp 使用 .Net 系统自带的组件

用 .Net 语言写 WinForm 应用时,很多系统控件都带有很漂亮的样式,今天休息随便在网络上逛逛,又看到 DougHennig 的 Call .Net Code from VFP 的文章,看到其中调用 OpenFileDialog 的代码,界面确实不错,可惜作者采用的方法是先用 .Net 生成一个 DLL,再给 vfp 使用,有了这个组件,还有必要另外用 C# 再写一个 COM 来调用吗?转到出品  wwDotnetBridge 的西风公司网页,大致重温了下这个组件的功能和用法,然后尝试用 vfp 实现了直接用这个组件来调用 OpenFileDialog 类的方法。

用 vfp 自带的 GetFile 函数的界面是这样:



用 .Net 组件的界面是这样:类定义参见:OpenFileDialog 类



对于选择文件夹,如果使用 .Net 提供的 FolderBrowserDialog 类,与 vfp GetDir 函数带 BIF_NEWDIALOGSTYLE 参数的样式没有区别;如果想显示与上面相似的样式,则需要使用微软提供的扩展库 Microsoft Windows API Code Pack 才行,样式如下:



联想到之前论坛上网友要实现的 hmac 简约算法,直接用这个组件调用 .Net 类,也可以很容易的实现这个算法:
类定义参见:HMAC 类



示例代码:http://download.csdn.net/detail/dkfdtf/9758533  (重要:下载后右击压缩包,属性 -> 解除锁定,然后再解压,否则, .Net 会阻止装入 wwDotNetBridge.dll)


/* -------------------------------------------------------------------------------------------------

补充:对于重载过的枚举值,这个组件指定起来还真是有些麻烦,例如,上面示例中,如果想指定初始文件夹为桌面,.Net 语言一句就搞掂:

OpenFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
然而使用这个组件来指定,却需要这样:

m.oo = m.oDotNet.CreateComValue()
m.cc = m.oDotNet.InvokeStaticMethod('System.Environment', 'GetFolderPath' ;
			, m.oo.SetEnum('System.Environment.SpecialFolder.Desktop'))
m.oDotNet.SetProperty(m.oDlg, 'InitialDirectory', m.cc)
---------------------------------------------------------------------------------------------------*/


参考连接:

1.  Calling .NET Code from VFP the Easy Way

2.  Calling .NET Components from Visual FoxPro with wwDotnetBridge 

3.  .NET Interop for Visual FoxPro made easy

4. Class wwDotNetBridge - West Wind Client Tools


阅读更多
文章标签: vfp DotNetBridge Ope
个人分类: VFP9
上一篇COM 免注册技术
下一篇OpenPop
想对作者说点什么? 我来说一句

C#.net 访问VFP(DBF)文件的示例

2013年03月25日 676KB 下载

vfp 通过 wwDotNetBridge使用 .Net

2017年02月20日 298KB 下载

连接VFP的实现

zgqtxwd zgqtxwd

2008-04-28 16:54:00

阅读数:186

<em>vfp</em>教程 - 下载频道

2016年11月30日 0B 下载

没有更多推荐了,返回首页

关闭
关闭