2011-09-27 33 views
0

我想在使用csharp的windows窗體上有一個Facebook風格的動態下拉菜單。 任何想法如何實現它?Windows窗體上的Facebook風格動態下拉菜單

文本框的TextChanged事件可以使用,但我不知道如何可視化它。

對於這裏不使用Facebook的人來說明。 通常沒有下拉菜單,但是當你開始輸入時,它會自動顯示你的朋友的名字匹配,並且一旦文本被改變,它就會更新下拉菜單的內容。

注意:如果有幫助,也可以使用devexpress工具。

感謝&問候, -AFgone

回答

1

只需使用一個文本框和組合框。從不可見的組合框開始,並顯示在文本框的頂部。只要輸入文本,就可以看到組合框並將焦點設置爲它。一些示例代碼:

public partial class Form1 : Form { 
    public Form1() { 
     InitializeComponent(); 
     comboBox1.Visible = false; 
     comboBox1.Size = textBox1.Size; 
     comboBox1.Location = textBox1.Location; 
    } 

    private void textBox1_TextChanged(object sender, EventArgs e) { 
     if (textBox1.Text.Length > 0) { 
      comboBox1.Text = textBox1.Text; 
      comboBox1.Visible = true; 
      comboBox1.Focus(); 
      textBox1.Enabled = false; 
      // todo: fill combo 
     } 
    } 

    private void comboBox1_Leave(object sender, EventArgs e) { 
     comboBox1.Visible = false; 
     textBox1.Text = ""; 
     textBox1.Enabled = true; 
    } 
} 
+0

但我不希望顯示只有一行文本。在圖片列表中,圖片旁邊有兩行文字等。非常類似於Facebook的圖案。我們如何實現它 – AFgone

+1

查看MSDN庫的示例代碼ComboBox.DrawMode –