2017-02-22 52 views
-3

根據要求,我們需要爲Windows應用程序的電子郵件文本框應用自動篩選選項。 我們能夠實現使用「AutoCompleteCustomSource」自動篩選文本框與昏迷分隔字符串

對於電子郵件文本框中自動篩選,我們編程的方式創建「AutoCompleteStringCollection」列表,並將其設置爲文本框的「AutoCompleteCustomSource」屬性。 我們的電子郵件文本框還具有使用彗星分隔符輸入多個電子郵件的選項。

在多封電子郵件的情況下,自動過濾器無法正常工作。

例如,如果我們輸入「Sa」,它將顯示以「Sa」開頭的電子郵件 但是,如果我們在輸入電子郵件(「rahul @ gmail.com,Sa」)後輸入「Sa」沒有顯示任何以「Sa」開頭的項目。

有什麼辦法可以解決這個問題嗎?如果您能提供解決方案,將不勝感激。

AutoCompleteStringCollection data = new AutoCompleteStringCollection(); 
     data.Add("Mahesh Chand"); 
     data.Add("Mac Jocky"); 
     data.Add("Millan Peter"); 
     textBox1.AutoCompleteMode = AutoCompleteMode.Suggest; 
     textBox1.AutoCompleteCustomSource = data; 

最好的問候,

+0

你有什麼迄今所做?你可以顯示代碼嗎?我們可以提供幫助,但不能從頭生成代碼 –

+0

我剛添加了代碼。我用名稱而不是電子郵件ID – Ranish

+0

不幸的是,這不是真的可能。問題是您提供了一個(可能是虛擬的)可以輸入和自動完成的值的列表。但是,如何使用這個列表將由文本框決定,而不是源代碼。 – Oliver

回答

0

擔任首發,你可以與已經寫入字符串,如果你遇到一個,基本上擴展你AutoCompleteStringCollection data

這裏是第一步。我採取TextChanged事件來檢查,。然後將已寫入的文本放在每個條目前面。

private void textBox2_TextChanged(object sender, EventArgs e) 
{ 
    if (textBox2.Text.Last() == ',') 
    { 
     for (int i = 0; i < data.Count; i++) 
     { 
      data[i] = textBox2.Text + data[i]; 
     } 
    } 
} 

下面是結果:

enter image description here

免責聲明:問題仍然有待解決:

  • 避免以顯示已書面姓名

  • 處理用戶刪除的情況,因爲到現在爲止仍然延長

  • 迴歸到你的AutoCompleteStringCollection

啓動狀態,我希望它有助於

+0

謝謝。我們不能附加已經寫好的名字,因爲有可能在兩個名字之間插入名字。 – Ranish

+0

@Ranish然後你就可以用我猜的代碼來編寫你自己的自動完成代碼了。祝你好運 –

+0

@Ranish也許你應該在你的文章中加入這個要求 –