【问题标题】:Converting vb6 function to vb.net with Form Manipulation使用表单操作将 vb6 函数转换为 vb.net
【发布时间】:2015-09-18 15:54:01
【问题描述】:

我在 vb6 中有一个函数,它接收一个通用表单,然后在该页面上执行各种操作。 我正在尝试从 vb6 转换为 vb.net 和 wpf。 但是,由于页面/窗口操作与 vb6 非常不同,所以在这种情况下我该怎么办。

我不想使用 find child 函数,因为我认为对每个控件都这样做是非常低效的。

谁能帮忙?

功能(部分):

Public Function SegurancaControlo(ByRef Frm As Form, ByVal Objecto, Optional ByVal Condicao As String) As Boolean
On Error GoTo ErroEm_SegurancaControlo
Dim rss As ADODB.Recordset
Dim SQL As String


' configura controlo
SQL = (..)

If query(SQL, rss, "SYS") Then
    Do Until rss.EOF
    Select Case rss!Property
        Case "E"
            Frm.Controls(rss!NomeObjecto).Enabled = rss!Value
        Case "L"
            If (TypeOf Frm.Controls(rss!ObjectName) Is DataGrid) Then
                Frm.Controls(rss!ObjectName).AllowUpdate = False
                Frm.Controls(rss!ObjectName).AllowAddNew = False
                Frm.Controls(rss!ObjectName).AllowDelete = False
            Else
                Frm.Controls(rss!NomeObjecto).Locked = rss!Value
            End If

        Case "V"
            Frm.Controls(rss!ObjectName).Visible = rss!Value
        Case "C"
            Frm.Controls(rss!ObjectName).Caption = rss!Value

    End Select
    rss.MoveNext
Loop
End If
(..)

【问题讨论】:

    标签: wpf vb.net vb6


    【解决方案1】:

    我不确定你的问题是什么。除了 On Error Goto(请参阅帮助中的 Try/Catch 块)和 As ADODB.Recordset(请参阅 SQL DataReader 或 SQL DataSet),您的代码将在 vb.net 中正常运行。

    Frm.Controls(ControlName As String).Property

    在 vb.net 中有效。假设表单上有一个名为 TextBox1 的文本框,则此代码有效...

      Dim Frm As Form = Me
    
      Frm.Controls("TextBox1").Enabled = False
      Dim t As String = Frm.Controls("TextBox1").Text
    

    【讨论】:

    • 但我使用的是 wpf 而不是 windows 窗体。没有表单,只有页面和窗口
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 2021-10-10
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多