vb6代码转c# (withevents问题)

问题描述

DimWithEventsssAscls1'ss,事件通知我们数据改变DimccAsNewclsH'连接器对象'按这个按钮,修改cls1(ss)的属性值PrivateSubCommand1_Click()ss.mVal=TimeEndSub'初始连接器cc,初始cls1,事件分发对象ssPrivateSubForm_Load()Setss=cc.GetClsEndSub'接受到数据改变事件PrivateSubss_ValChange(vDataAsString)Form1.Caption=ss.mValEndSub这是vb6代码,引用了vb6写的activexexe类型控件,麻烦各位大侠帮忙转换为c#,主要withevents搞不定

解决方案

解决方案二:
DimWithEventsssAscls1-->cls1ss;
解决方案三:
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingtest;namespaceWindowsFormsApplication5{publicpartialclassForm1:Form{clsHcc=newclsH();cls1ss;publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){ss=(cls1)cc.GetCls;}privatevoidbutton1_Click(objectsender,EventArgse){ss.mVal=DateTime.Now.ToString();}privatevoidss_ValChange(stringvData){Text=ss.mVal;}}}我改为这样,不过ss_ValChange不响应
解决方案四:
ss_ValChange,你并没有调用阿
解决方案五:
在vb下是有被调用的,这是那个activeexe控件里的代码PrivatemvarmValAsString'属性变量PublicEventValChange(vDataAsString)'通知事件PublicPropertyLetmVal(ByValvDataAsString)mvarmVal=vDataRaiseEventValChange(vData)EndPropertyPublicPropertyGetmVal()AsStringmVal=mvarmValEndProperty
解决方案六:
ss里有ss.ValChange这个事件,是__cls1_ValChangeEventHandler类型,怎么把ss.ValChange与privatevoidss_ValChange(stringvData)这两个关联起来。附上:publicdelegatevoid__cls1_ValChangeEventHandler(refstringvData);namespacetest{[ComVisible(false)][TypeLibType(16)]publicinterface__cls1_Event{event__cls1_ValChangeEventHandlerValChange;}}
解决方案七:
我只会写到ss.ValChange+=new__cls1_ValChangeEventHandler()里面就不知怎写了

时间: 2024-12-30 06:33:28

vb6代码转c# (withevents问题)的相关文章

从VB6到VB.NET的变化综述 (转)

随着Microsoft .NET平台的发布,Visual Basic开始成为一种完全面向对象的语言,简称为VB.NET.虽然有了一些根本性的变化,开发者从VB6到VB.NET的学习热情依然相当高,即使对于有经验的编程人员也是如此.本文中,我将列出Visual Basic语言中的变化,并在适当的地方举例说明.这里所列出的可能不完全,但是已经包括了大部分的功能.如果你是一个想要转到VB.NET上去的 VB程序员,这篇文章就一定要读一读. ASP.NET Beta 1版本可以从http://www.a

从VB6到VB.NET的变化综述(转)

从VB6到VB.NET的变化综述 当创建ASP.NET页面时,需要使用一种与兼容 .NET的编程语言,如C#.VB.NET或JScript.NET.但是从VB6/VBScript 到VB.NET有许多重要的变化,这正是本文所涉及的内容. 另外,如果想获得更多有关的信息,我强烈推荐你阅读Microsoft的文章:为Visual Basic 6.0应用程序升级到Visual Basic.NET做好准备. 引言随着Microsoft .NET平台的发布,Visual Basic开始成为一种完全面向对象

VB6 中使用错误处理对于速度的影响

错误|错误处理|速度   在 VB6 中,我们使用 On Error 来捕获和处理错误,而且经常使用 On Error Resume Next 来可能产生的忽略错误. 那么 使用错误捕获是否会影响速度呢? 是的,使用错误处理将会降低一些性能,在.Net 中,使用 Try Catch 也将会影响性能,所以我们使用 Reflector 反编译微软的类库时,会发现他的子过程很少使用 Try 来捕获错误,基本都是采用可预知的方式来判断可能出现的错误,并做相应处理. 实际上,使用错误捕获后,编译后的代码实

VB.NET是怎样做到的(搬家版)

VB.net能够实现很多C#不能做到的功能,如When语句.Optional参数.局部Static变量.对象实例访问静态方法.Handles绑定事件.On Error处理异常.Object直接后期绑定等等.VB和C#同属.net的语言,编译出来的是同样的CIL,但为什么VB支持很多有趣的特性呢.我们一起来探究一下. (一)局部静态变量 VB支持用Static关键字声明局部变量,这样在过程结束的时候可以保持变量的数值: Public Sub Test1()     Static i As Inte

VB.net是怎样做到的(四、五)

VB.net是怎样做到的(三)--Handles和WithEvents VB除了可以用C#那样的方法来处理事件响应以外,还有从VB5继承下来的独特的事件处理方式--WithEvents. 我喜欢称这种事件处理方式为静态的事件处理,书写响应事件的方法时就已经决定该方法响应的是哪一个事件,而C#则是在代码中绑定事件的.比如下面这个最简单的例子: Public Class HandlerClass Public WithEvents MyObj As EventClass Private Sub My

Henry的VB.NET之旅(十三)—标准事件处理程序

标准|程序 Henry的VB.NET之旅(十三)-标准事件处理程序 韩睿 "感兴趣就好!"大李微微点点头,然后问我道,"你知道程序是怎么知道哪些对象可以引发何种事件,以及怎么样把事件和事件处理程序关联起来?" 见到我迷茫的眼神,大李用鼠标点击打开被Region合起来的"Windows 窗体设计器生成的代码",指着中间的一句自动生成的代码: Friend WithEvents Button1 As System.Windows.Forms.Butt

关于“经典VB”的一些想法

最近,这个主题已经出现在了"新闻组"里(呃,至少已经出现在了很多blog里),我一直在考虑如何回复大家--但事实上,我根本没有回复的必要,因为Dave Totzke已经替我这么做了.他在文中提到了一点:我们应该让C++继续存在下去,是因为Office是用C++写成的--关于这点我不太敢恭维,因为这理由实际上应当是--这个被托管的世界无法取代我们为底层的硬件和操作系统编写本地代码的需要.我们至少需要一种方案,使图形软件.设备驱动器.网络信息过滤器等等都能高效地运作--因此,我们还是需要非

vb.net的事件和事件处理

有的时候,用户可能觉得Visual Studio的工程是一系列的顺序发生的过程,但是在大多数情况下,其实程序是事件驱动的(event driven)---也就是说,程序的运行都是取决于一些诸如点击键盘,点击鼠标以及一些用户自定义的事件.不象线性进行的程序那样,它在有些时候不可能决定是要运行哪一个事件驱动的特定过程.事件对现在的编程而言可以说是一个基本的组成部分,因为这些事件可以让用户写出能对对象之外的世界做出反应的程序,诸如用户的输入和其他对象输入的信息. 1.事件 事件是用来告知应用程序,一些

Webbrowser控件史上最强技巧全集

原文:Webbrowser控件史上最强技巧全集 Webbrowser控件史上最强技巧全集 VB调用webbrowser技巧集 1.获得浏览器信息: Private Sub Command1_Click() WebBrowser1.Navigate "http://www.applevb.com" End Sub Private Sub Command2_Click() Dim oWindow Dim oNav Set oWindow = WebBrowser1.Document.par