注册 登录
编程论坛 VB.NET论坛

VB.NET新手问个问题~

wube 发布于 2011-07-27 11:06, 594 次点击
这问题不知怎问~直接贴图来解释原因~

图中是原本写在VB6中的代码~运行流程如图所示~
只有本站会员才能查看附件,请 登录


现在要改写成的。NET版本~但是出现问题~
只有本站会员才能查看附件,请 登录


1。程式码运行流程有相同吗?
2。VB6和。NET中的表单和类和模块之间的关系和运行方法有相同吗?
3。图中出现的错误要怎修正~原因为何?

请高手指导一下~感谢~

[ 本帖最后由 wube 于 2011-7-27 11:13 编辑 ]
3 回复
#2
不说也罢2011-07-27 12:19
楼主在命名空间里引用自定义的类了么?
如:
Imports
Public Class Form1
     ..........
End Class

你的名称为ClsE320Analysis的自定义的类是在.NET下编写的么?
#3
wube2011-07-27 12:51
不是耶~我整个程式码贴过去~先改掉简单的东西~要比较VB6和。NET到底差在哪些地方~

改了2个地方有解决~
属性LogFilePath本来只需要丢进去类~改成双向~加了Get~就行了~虽然不知道为何~

    Public Property LogFilePath() As String
        Get
            Return mvarLogFilePath
        End Get

        Set(ByVal value As String)
            mvarLogFilePath = value
            FileName = Trim(mvarLogFilePath)
        End Set
    End Property

然后Private Sub New()要把Private去掉~
在Form里面类定义才能用 New

Dim AAA As New ClsE320Analysis

但是又有新问题~原本VB6中使用类事件将运行中的类把控制权转交给Form的动作~
好像在.NET又不行了~

不好意思~正常应该不能这样学的。NET的吧~
#4
wube2011-07-27 13:41
OK~试出来了~原因还是在于类定义~

Form1:
Dim AAA As New ClsE320Analysis
改成
Private WithEvents AAA As New ClsE320Analysis

Private Sub AAA_BackStruct(ByVal Num As Integer)
改成
Private Sub ClsE320Analysis_BackStruct(ByVal Num As Integer) Handles AAA.BackStruct

就OK了~其实感觉运行概念和程序语法不会差很多~
有些地方像VB6的又有些地方像C++~
综合体吧~
1