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

原创 2017年02月18日 14:46:02

用 .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本地表数据传送到SQL-Server后台进行更新

前言:讲解涉及到VFP和SQL-Server的并不多,MSDN中主要介绍的是VFP如何通过SPT跟SQL-Server进行通讯的常用几个函数,连接、断开、执行、设置环境等。我在MSDN中找了很久,也许...

让 Anchor 属性拥有设计时行为

用过 vfp9 的人都知道这个好用的新属性,宿主控件大小变化时,其内部控件可以用这个属性来自动调整它们的位置和大小,不用再像 vfp6 中要写代码来调整;不过,大家也看到了,这个属性只是一个运行时行为...
  • dkfdtf
  • dkfdtf
  • 2017年01月31日 23:26
  • 507

VS 使用自带的.NET Reflector单步调试编译好的程序集(反编译),以及相关其他反编译程序介绍

对于没有任何源代码和PDB文件的预编译程序集而言,如果没有合适的工具,调试起来并不容易。使用Red Gate的.NET Reflector可以在Visual Studio中即时反编译程序集,然后像...

C# WinForm开发系列之c# 通过.net自带的chart控件绘制饼图,柱形图和折线图的基础使用和扩展

一.需要实现的目标是: 1.将数据绑定到pie的后台数据中,自动生成饼图。 2.生成的饼图有详细文字的说明。 1.设置chart1的属性Legends中默认的Legend...

.Net操作Office总结一 - 使用VS2010自带的Office模板进行开发

一 创建Office项目     新建项目,出现 “新建项目”对话框。 在对话框顶部的组合框中,选择 “.NET Framework 3.5”或 “.NET Framework 4”。  在“模板”窗...

如何使用asp.net自带的缓存优化我们的项目?

不废话,直接上代码。。。。 1. 定义缓存接口ICache,方便程序依赖注入 public interface ICache { T Get(string key); ...

黑马程序员_ASP.Net使用微软自带Ajax实现无刷新

------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------   这个东西看起来挺牛X的,给服务器减轻压力,也给我们这些网速慢的省些流量哈~!(不是知道是否...

.net自带 SQL Server 2005 Express使用

SQL Server 2005 Express(以下简称SQLServer)是VS2005的套件之一,发行已经有段时间了。它可以单独下载安装,也可以在安装VS2005的时候安装。我是在安装VC#200...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vfp 使用 .Net 系统自带的组件
举报原因:
原因补充:

(最多只允许输入30个字)