0

我正在尝试将另一种形式实施到已经完成的例程中。基本上所有的代码都在那里,我需要做的就是以不同的方式操作数据。

例如,我有一个看起来像这样的例程。这是一个释义示例:

Private Sub getReportValues(ByRef fr As frmCustomReport, ByRef ReportInfo As ReportValues)
            ReportInfo.eHeaderColor = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Software\FE Jupiter\MSSMonitor").GetValue("Report Equipment Header Color", "DCDCDC") 'Gainsboro
            ReportInfo.mHeaderColor = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Software\FE Jupiter\MSSMonitor").GetValue("Report Monitor Header Color", "FFF8DC")   'Cornsilk

fr.btnEquipColor.PickedColor = System.Drawing.ColorTranslator.FromHtml("#" & Microsoft.VisualBasic.Conversion.Hex("&HFF" & ReportInfo.eHeaderColor))

问题在于(fr as frmCustomReport)我想把它变成一个 system.windows.forms.form 但是我会失去使用它的对象的能力。我还应该提到 fr 是一个模态对话框,我不希望为此使用一个非常老套的 controlcollection。有人对此有好的方向吗?

另请注意!!!我想在两种表单上访问的控件几乎相同。唯一的区别是布局和一些附加功能。

4

1 回答 1

1

没有更多的信息,很难给出一个具体的例子。这将取决于您需要进行的交互量。创建一个接受基类作为参数的子例程,查看 Name 值并基于条件逻辑使用 CType 将 Form 转换为正确的类型。

Private Sub clickOtherFormsButton(Value As Form)

    If Value.Name = "Form3" Then
        Dim formObject As Form3 = CType(Value, Form3)
        formObject.Button1.PerformClick()
    ElseIf Value.Name = "Form2" Then
        Dim formObject As Form2 = CType(Value, Form2)
        formObject.Button1.PerformClick()
    End If

End Sub
于 2012-10-31T00:54:02.233 回答