我有一个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窗体中的按钮后,用户在组合框中选择的值需要保存在:“公共共享CTB名称为字符串”
我不是100%确定我正确地理解了这个问题,但在我看来,在用户有时间更改组合框中的值之前,就像你在显示表单后立即调用'acEd.WriteMessage(CTBName)'一样你创造了。
你可以使用'ShowDialog'代替'Show'来阻止执行,直到用户响应,或者将'acEd.WriteMessage(CTBName)'移动到buttonclick的事件处理程序,具体取决于你想要的行为。