1

Использование VB. Я пытаюсь использовать текст в поле со списком в качестве значения размера моего шрифта. Значит, как пользователь, я могу выбрать размер шрифта, щелкнув его из выпадающего меню.

Выпадающее меню:

Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged ComboBox1.Items.Add("6") ComboBox1.Items.Add("10") ComboBox1.Items.Add("12") End Sub

Теперь выбранный вариант должен влиять на размер шрифта. Но поэтому мне нужно конвертировать из строки в размер. Кто-нибудь может помочь?

Также я могу представить, что есть более эффективный способ дать пользователю возможность изменить размер шрифта. Любые советы и рекомендации приветствуются!

1 ответ1

2

Нечто подобное должно работать для вас:

    Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'Your combo box should be built and populated when the form loads, not when the combo box is changed
        ComboBox1.Items.Add("6")
        ComboBox1.Items.Add("10")
        ComboBox1.Items.Add("12")

        ComboBox1.SelectedIndex = 0 'This Auto-Selects the first entry to prevent you having to handle "null"'s
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
        Dim tryParseResult As Boolean 'holds the True/False for whether conversion to a number worked
        Dim parsedNumber As Integer 'Holds the number after conversion

        tryParseResult = Int32.TryParse(ComboBox1.SelectedItem, parsedNumber) 'try converting to number - "parsedNumber" will contain the number on success - "tryParseResult" will contain a true/false for success

        'If tryPArseResult = False - conversion failed - tell the user and stop.
        If tryParseResult = False Then
            MessageBox.Show("Conversion of " & ComboBox1.SelectedItem & " To Number Failed") 'Tell the user it failed
            Exit Sub 'Stop processing
        End If

        'Set TextBox1's Font to the same font with a new size
        TextBox1.Font = New Font(TextBox1.Font.Name, parsedNumber)

    End Sub
End Class

Это должно сделать следующее:

Если вы хотите сделать это с помощью элементов управления ih multipler - вам нужно посмотреть на циклический просмотр элементов управления в форме, используя OfType если вы хотите работать только с определенными элементами управления

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .