2017-06-23 72 views
0
private void ComboBox1_TextChanged(object sender, EventArgs e) 
    { 
     ComboBox1.Items.Clear(); 
     XmlNodeList node_lst = doc["paths"].ChildNodes; 
     foreach (XmlNode item in node_lst) 
     { 
      if (item.InnerText.Contains(ComboBox1.Text)) 
      { 
       ComboBox1.Items.Add(item.InnerText); 
      } 
     }    
    } 

我是這個網站的新手,當我從組合框清除項目時,我有問題,我從XML文件中獲取這些項目;我的問題是當我在組合框文本中輸入字母時,文本以反向的方式輸入,我期望在明確方法中的問題,但我不知道如何執行此操作。 謝謝。組合框事件及清除方法

+0

請問您是什麼意思?'文字是以倒置的方式輸入的?你的意思是從右到左出現嗎? – greenTree

+1

嘗試創建一個字符串,然後將該字符串插入到組合框 – Gino

+0

您有調試嗎?你確定這個項目是你從XML讀取的不是一個字符嗎? – Rinos

回答

1

當您刪除從ComboBox光標將被設置到第一位置。所有的物品,所以以後每次您鍵入光標字符將被轉移到左邊,你會得到從右到左打字的感覺。

的解決辦法是設置SelectionStart for循環手工的Text結束後:

comboBox1.SelectionStart = comboBox1.Text.Length; 
+0

謝謝你,我嘗試它,它運行correctry,謝謝你 –

0

我想你想是這樣的:

var nodeList = node_lst.Cast<XmlNode>() 
           .Select(x => library.GetMemberName(int.Parse(x.InnerText))) 
           .ToList(); 
nodeList.Reverse(); 

更多信息on Reverse()https://msdn.microsoft.com/en-us/library/b0axc2h2(v=vs.110).aspx

+0

謝謝你,我嘗試comboBox1.SelectionStart = comboBox1.Text.Length;它運行正常 –