VB.net 如何从外部表单更新 public 共享成员内容
VB.net how to get public shared member contents updated from external form
我有一个 Class,其中我有子程序,每个子程序在 Autocad 中都有自己的用途。对于这些潜艇之一,我需要用户从我从 autocad 导出到 WinForm 的数据集中输入一些数据。
到目前为止,我已经成功地将数据从 autocad 获取到我的 WIndowsform 中的组合框。现在我需要将组合框中的 selected 值返回到我在 class 中创建的 Public 共享变量,其中 subs 所在。
使用我当前的代码,无论我在组合框中 select 是什么,在我的命令行中写入的消息都是 "acad.ctb"。
'我的class子所在的部分
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
'my class WinForm所在
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Class1.CTBName = CmbAcCTB.Text
Me.Close()
End Sub
我需要什么:在 Windowsform 中按下按钮后,用户在组合框中编辑的值 select 需要保存在:"Public Shared CTBName as string"
我不是 100% 确定我是否正确理解了这个问题,但在我看来,你好像在显示表单后立即调用“acEd.WriteMessage(CTBName)”,用户还没有时间更改您创建的组合框中的值。
您可以使用 'ShowDialog' 而不是 'Show' 来阻止执行直到用户响应,或者将 'acEd.WriteMessage(CTBName)' 移动到按钮单击的事件处理程序,具体取决于您想要的行为。
我有一个 Class,其中我有子程序,每个子程序在 Autocad 中都有自己的用途。对于这些潜艇之一,我需要用户从我从 autocad 导出到 WinForm 的数据集中输入一些数据。
到目前为止,我已经成功地将数据从 autocad 获取到我的 WIndowsform 中的组合框。现在我需要将组合框中的 selected 值返回到我在 class 中创建的 Public 共享变量,其中 subs 所在。
使用我当前的代码,无论我在组合框中 select 是什么,在我的命令行中写入的消息都是 "acad.ctb"。
'我的class子所在的部分
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
'my class WinForm所在
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Class1.CTBName = CmbAcCTB.Text
Me.Close()
End Sub
我需要什么:在 Windowsform 中按下按钮后,用户在组合框中编辑的值 select 需要保存在:"Public Shared CTBName as string"
我不是 100% 确定我是否正确理解了这个问题,但在我看来,你好像在显示表单后立即调用“acEd.WriteMessage(CTBName)”,用户还没有时间更改您创建的组合框中的值。
您可以使用 'ShowDialog' 而不是 'Show' 来阻止执行直到用户响应,或者将 'acEd.WriteMessage(CTBName)' 移动到按钮单击的事件处理程序,具体取决于您想要的行为。