C#程序不会改变组合框文本

时间:2017-05-15 13:05:14

标签: c# string text combobox

我告诉程序更改组合框文本以更改为我拥有的字符串,并且它不会更改文本。 以下是代码的一部分:

int i = 0;
bool found = false;
do
{
    if (Globais.loc_txt[i] == (items[0] + " ") || Globais.loc_txt[i] == (items[0]))
    {
        cb_loc.Text = Globais.loc_txt[i]; // ele encontra bem, mas agora nao está a mudar o valor de text na cb
        break;
    }

    else { i++; }

} while (!found && i <= Globais.loc.Length);

无论如何,谢谢。

PS:cb_loc是我的组合框的名称,Globais.loc_txt [i]是一个字符串数组,它在i位置有一个字符串。

enter image description here

这就是我的组合框设置或你称之为的任何设置。

1 个答案:

答案 0 :(得分:1)

根据msdn

将Text属性设置为null或空字符串(“”)将SelectedIndex设置为-1。将Text属性设置为Items集合中的值会将SelectedIndex设置为该项的索引。 将Text属性设置为不在集合中的值会使SelectedIndex保持不变。

您要将combobox.Text的文本设置为组合框中的项目吗? 如果是新字符串,则首先尝试将该项添加到集合中。

你的if逻辑似乎只是比较一个字符串并用尾随空格检查它。  1,我假设两者都不在你的combobox.items中。  2,你能修剪Globais.loc_txt [i]

吗?
int i = 0;
bool found = false;
do
{
    string text = Globais.loc_txt[i].TrimEnd()
    if (text == item[0])
    {
        cb_loc.Text = text; // ele encontra bem, mas agora nao está a mudar o valor de text na cb
        break;
    }

    else { i++; }

} while (!found && i <= Globais.loc.Length);