Проблемы при редактировании многострочного текстового поля во время выполнения vb.net - PullRequest
2 голосов
/ 01 мая 2011

Я студент колледжа без большого опыта работы с vb.net и мне нужна помощь в личном проекте. Я пытаюсь увеличить высоту многострочного текстового элемента управления, чтобы я мог вставить несколько строк во время выполнения. Я хочу перейти на новую строку в моем текстовом поле после нажатия Enter. Кроме того, одновременно я пытаюсь создать комбинированный список рядом с каждой строкой текстового поля, созданной нажатием Enter. Вот код, который у меня есть:

Private Sub ThisTextBox_keypress(ByVal sender As System.Object, ByVal e As KeyPressEventArgs) Handles ThisTextBox.KeyPress

    Dim TextboxLine As String() = ThisTextBox.Text.Split(vbNewLine)
    Dim Linecount As Integer = TextboxLine.Count
    If e.KeyChar = Chr(Keys.Enter) Then
       Me.ThisTextBox.Height = TextRenderer.MeasureText(" ", Me.ThisTextBox.Font).Height * _ Linecount 
       For Each Item In TextboxLine
            Dim newCombobox = New ComboBox()
            Me.Controls.Add(newCombobox)
            newCombobox.Items.Insert(0, "Item 1")
            newCombobox.Items.Insert(1, "Item 2")
            newCombobox.Items.Insert(2, "Item 3")
            newCombobox.Items.Insert(3, "Item 4")

            newCombobox.Location = New System.Drawing.Point(108, 69+=27)
            newCombobox.Size = New System.Drawing.Size(92, 21)

        Next
    End If


End Sub

Проблема в том, что текстовое поле увеличивает свою высоту с каждым вводимым в него символом, и когда я нажимаю клавишу ввода, высота элемента управления увеличивается странными приращениями, которые не могут быть связаны с шрифтом текста * числом строк. Кроме того, мой код может быть далек от того, как создать комбинированный список во время выполнения и установить его в определенном месте, но, надеюсь, вы сможете увидеть, что я пытаюсь сделать. Заранее спасибо.

1 Ответ

1 голос
/ 01 мая 2011

Интересный вопрос.

Следующий код почти достигает того, что вы хотите, однако размещение выпадающего списка рядом с каждой текстовой строкой вызывает проблемы, поскольку недостаточно места для того, чтобы сделать выпадающий список достаточно высоким.1004 *

Я не знаю, как изменить высоту элемента управления со списком (кто-то здесь может знать, если вы можете), но все равно это будет выглядеть забавно.

Вы также можете посмотреть наиспользование элемента управления RichTextBox и изменение межстрочного интервала.

Надеемся, что приведенный выше код поможет вам в любом случае начать работу.

...