VB.net如何获取从外部表单更新的公共共享成员内容

时间:2019-04-25 12:54:58

标签: vb.net winforms class autocad

我有一个Class,其中每个Sub都在Autocad中有各自的用途。对于这些子之一,我需要用户输入从autocad导出到WinForm的数据集中的一些数据。

到目前为止,我已经成功地将数据从autocad传递到WIndowsform中的组合框。现在,我需要将组合框中的选定值返回到我在子所在的类中所做的“公共共享”变量。

使用我当前的代码,无论我在组合框中选择什么,在命令行中写入的消息都是“ acad.ctb”。

“我的班级所在的班级以及班级的一部分

Public Shared CTBName As String = "acad.ctb"

<CommandMethod("REPublish")>
Public Sub PublishAllLayouts()

    'add the data set to the Combobox in the windows form
    For Each item In AcCtb
        PlotSettingSelect.CmbAcCTB.Items.Add(item)
    Next

    PlotSettingSelect.Show()

    'CTBName = PlotSettingSelect.CmbAcCTB.
    acEd.WriteMessage(CTBName)

End Sub

'我的WinForm所在的类

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Class1.CTBName = CmbAcCTB.Text

    Me.Close()

End Sub

我需要什么:在Windows窗体中按下按钮之后,用户在组合框中选择的值需要保存在以下位置:“公共共享的CTBName作为字符串”

1 个答案:

答案 0 :(得分:1)

我不是100%确定我正确理解了这个问题,但是在我看来,您似乎在显示表单之后,在用户没有时间更改值之前立即调用“ acEd.WriteMessage(CTBName)”在您创建的组合框中。

您可以使用“ ShowDialog”代替“ Show”来阻止执行,直到用户响应为止,或者将“ acEd.WriteMessage(CTBName)”移至buttonclick的事件处理程序,具体取决于您想要的行为。