vfp 使用 .Net 系统自带的组件
来源:互联网 发布:淘宝客服专用语言 编辑:程序博客网 时间:2024/05/21 21:37
用 .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 使用 .Net 系统自带的组件
- Android启动系统自带的程序组件
- 不使用系统自带的button
- iOS系统自带地位的使用
- 使用系统自带的委托
- 系统自带ImageLoader的简单使用
- yii使用自带组件pjax的请求
- 使用系统自带皮肤
- 使用.NET自带的功能制作简单的注册码
- 使用.Net自带的类发邮件
- 使用.NET 自带的组建发送邮件
- PHP使用到的一些系统自带常量
- Windows系统自带FOR命令的使用简介
- 使用系统自带的vim增强配置文件
- android系统自带的Service原理与使用
- android系统自带的Service原理与使用
- 使用Android系统自带的应用统计
- 使用Android系统自带的icon图标
- JAVA基础知识面试题集
- TreeDp POJ2342 Anniversary party
- Causal Inference 学习(一):Assignment Mechanism
- 欢迎使用CSDN-markdown编辑器
- 二层转发和三层交换
- vfp 使用 .Net 系统自带的组件
- 字符串对象的各种方法
- Linq to Lis
- 测试框架 Mocha 实例教程
- boost编译
- Git(5)/分支管理
- Android Studio NDk-JNi开发(二)AS下开发流程
- input不可修改实现方式
- 微信小程序访问豆瓣电影api400错误解决方法