2017-06-23 19 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;它运行正常 –