我有一个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作为字符串”
答案 0 :(得分:1)
我不是100%确定我正确理解了这个问题,但是在我看来,您似乎在显示表单之后,在用户没有时间更改值之前立即调用“ acEd.WriteMessage(CTBName)”在您创建的组合框中。
您可以使用“ ShowDialog”代替“ Show”来阻止执行,直到用户响应为止,或者将“ acEd.WriteMessage(CTBName)”移至buttonclick的事件处理程序,具体取决于您想要的行为。