繁体   English   中英

保存新表单中的用户选择

[英]Save user selection from a New Form

我将生成一个包含3个可能主题的PDF,因此我需要向用户显示一个带有3个单选按钮的表单来选择一个。

在我的Form1上

随着线

SelectedTheme = ChooseTheme()

我叫这个功能

Private Function ChooseTheme() As String
    Dim formChooseTheme = New ChooseThemeForm()
    formChooseTheme.Show()
    Return ChooseTheme
End Function

Form ChooseTheme()是一个带有3个单选按钮和一个带有此代码的cmd按钮:

Public Class ChooseTheme
Private Sub cmdChoose_Click(sender As Object, e As EventArgs) Handles cmdChoose.Click

    If optNormal.Checked = True Then Theme = "Normal"
    If optElegante.Checked = True Then Theme = "Elegant"
    If optModerno.Checked = True Then Theme = "Modern"
    Me.Close()
End Sub
End Class

但我不能让它发挥作用。 我很困惑在哪里以及如何定义(DIM)主题或/和ChooseTheme变量。 作为Form1上的Public变量?

在某种程度上,您可能会感到困惑,因为有一个表单类,还有一个名为ChooseTheme的函数。 由于从未设置函数返回值,因此该函数似乎存在缺陷。

如果只有三个选项,我会尝试在第一个表单上安装一个ComboBox,以防止为这么小的工作使用新表单。 另一种选择是检查菜单项。


要使用表单,您应该将主题选择器显示为对话框,以便用户在选择某些内容之前无法继续。 这样你就可以确定他们何时做出选择并允许他们取消/中止。

对话表格

在ThemeSelector表单中,您需要添加一个属性以显示其选择:

Public Property SelectedTheme As String = "Default"

由于您指示了单选按钮,因此初始化属性以匹配默认选项。 根据他们选择的值设置值。

由于它是一个Dialog,您还需要在表单中添加“ Ok和“ Cancel按钮以指示它们如何退出。 将它们的DialogResult属性分别设置为DialogResult.OkDialogResult.Cancel

使用对话框

' local var to hold the current theme
Private PDFTheme As String
...

' code to get selection
Using dlg As New frmThemeSelector
    If dlg.ShowDialog() <> DialogResult.Cancel Then
        PDFTheme = dlg.SelectedTheme
    End If
End Using

另请注意,使用ShowDialog显示的表单在关闭时不会自动处理,您需要这样做。 上面的代码使用Using块来处理它。 如果您希望在再次使用旧数据设置时将其清除,这一点非常重要。

我还建议使用PDFStyle Enum作为变量而不是字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM