簡體   English   中英

VBNET:選擇后如何重置組合框

[英]VBNET: How to Reset ComboBox after selection is made

如何將組合框重置為我在屬性中設置的默認文本。 假設我有一個帶有默認文本“ Rub y”的ComboBox,當將SelectedIndexChanged打印在文本框中之后,它不會重置為默認文本“ Ruby ”,而是重置為SelectedItem。 我希望它以后盡可能地讀“ Ruby ”。 謝謝

  1. 在表單類中聲明helper類變量:
    Dim _originalComboText As String
  2. 打開表單時,請記住一些幫助程序變量中控件的默認文本。 例如,將以下行添加到構造函數中( Sub New() ):
    _originalComboText = ComboBox1.Text
  3. 每次做出選擇后,從其中恢復文本:
    ComboBox1.Text = _originalComboText

如果檢查屬於表單的.designer.vb文件的內容,則實際上可以通過賦值( = )看到控件文本的初始化-因此在這里沒有特殊之處。 如果要保留文本,則必須將其保存在丟失之前。

這是完整的最小示例:

Public Class Form1

    Dim _originalComboText As String

    Sub New()

        ' This call is required by the designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.
        _originalComboText = ComboBox1.Text

    End Sub

    Private Sub ComboBox1_Leave(sender As Object, e As EventArgs) Handles ComboBox1.Leave
        ComboBox1.Text = _originalComboText
    End Sub

    Private Sub ComboBox1_LocationChanged(sender As Object, e As EventArgs) Handles ComboBox1.LocationChanged
        ComboBox1.Text = _originalComboText
    End Sub

End Class

並且,如果您的兩個處理程序沒有不同,則將它們替換為一個-在Handles子句中使用兩個事件:

    Private Sub ComboBox1_RestoreText(sender As Object, e As EventArgs) _
            Handles ComboBox1.Leave, ComboBox1.LocationChanged

        ComboBox1.Text = _originalComboText

    End Sub

用這個:

Private Sub ComboBox1_Leave(sender As Object, e As EventArgs) Handles ComboBox1.Leave
    ComboBox1.Text = "Ruby"
End Sub
 Private Sub ComboBox1_LocationChanged(sender As Object, e As EventArgs) Handles ComboBox1.LocationChanged
    ComboBox1.Text = "Ruby"
End Sub

因為用戶會選擇,所以說print <<"EOF"; ---mytext---EOF print <<"EOF"; ---mytext---EOF來自下拉列表的print <<"EOF"; ---mytext---EOF ,它將自動打印在文本框中。 他或她必須轉到文本框或其他地方。

我知道回答自己的問題不是慣例,但是否有人需要幫助。 這里是

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM