C# 如何更改组合框项目的文本?

C# 如何更改组合框项目的文本?,c#,combobox,C#,Combobox,我有一个带有dataGridView列名称的组合框,我可以将组合框中显示的项目的文本更改为我想要的任何文本吗 for (int i = 0; i < dataGridView1.Columns.Count; i++) { if (dataGridView1.Columns[i].ValueType == typeof(string) && i != 6 && i != 7 && i

我有一个带有dataGridView列名称的组合框,我可以将组合框中显示的项目的文本更改为我想要的任何文本吗

for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
    if (dataGridView1.Columns[i].ValueType == typeof(string) && 
        i != 6 && 
        i != 7 && 
        i != 8 && 
        i != 9)
            comboBox1.Items.Add(dataGridView1.Columns[i].Name);
}
comboBox1.SelectedIndex = 0;
for(int i=0;i
可能不需要更改文本,只需从特定索引中删除该项,然后在具有新文本的同一索引中插入新项即可。请尝试以下操作:

ListItem item = comboBox1.Items.FindByText("<Text>");
if (item != null)
{
   item.Text = "<New Text>";
}
ListItem item=comboBox1.Items.FindByText(“”);
如果(项!=null)
{
项目.文本=”;
}

如果要使用的值不适合作为组合框中的文本,我通常会这样做:

public class ComboBoxItem<T> {
    public string FriendlyName { get; set; }
    public T Value { get; set; }

    public ComboBoxItem(string friendlyName, T value) {
        FriendlyName = friendlyName;
        Value = value;
    }

    public override string ToString() {
        return FriendlyName;
    }
};

// ...
List<ComboBoxItem<int>> comboBoxItems = new List<ComboBoxItem<int>>();                      
for (int i = 0; i < 10; i++) {
    comboBoxItems.Add(new ComboBoxItem<int>("Item " + i.ToString(), i));
}

_comboBox.DisplayMember = "FriendlyName";
_comboBox.ValueMember = "Value";
_comboBox.DataSource = comboBoxItems;


_comboBox.SelectionChangeCommitted += (object sender, EventArgs e) => {
    Console.WriteLine("Selected Text:" + _comboBox.SelectedText);
    Console.WriteLine("Selected Value:" + _comboBox.SelectedValue.ToString());
};
公共类ComboBoxItem{
公共字符串FriendlyName{get;set;}
公共T值{get;set;}
公共ComboBoxItem(字符串friendlyName,T值){
FriendlyName=FriendlyName;
价值=价值;
}
公共重写字符串ToString(){
返回FriendlyName;
}
};
// ...
List comboBoxItems=新列表();
对于(int i=0;i<10;i++){
添加(新的ComboBoxItem(“Item”+i.ToString(),i));
}
_comboBox.DisplayMember=“FriendlyName”;
_comboBox.ValueMember=“Value”;
_comboBox.DataSource=comboBoxItems;
_comboBox.SelectionChangeCommitted+=(对象发送方,事件参数e)=>{
Console.WriteLine(“选定文本:”+\u组合框.SelectedText);
Console.WriteLine(“选定值:”+\u组合框.SelectedValue.ToString());
};

您只需通过以下方式更改组合框项目:

my_combo.Items [i_index] = "some string"; 

最好的方法是:

ui->myComboBox->setItemText(index,"your text");
我希望这能帮助你:

combobox.Items[combobox.FindStringExact("string value")] = "new string value";
FindStringExact
方法返回特定项文本的索引,因此这是更改
组合框
项文本的更好方法


注意:这在C#上很好。

当然可以,但是你能发布一些代码吗?是的,你可以这样做。我编辑了文章并添加了代码。这是WPF还是表单?你能把你的问题也加上标签吗?谢谢我认为他希望保留列名的值,但显示更直观或格式更好的内容。如果是这样,他能否将项目值设置为实际列名,并将文本更改为更可读/直观的内容?我假设他使用的是Winforms;除非他设置数据源并填充DisplayMember和ValueMember,或者使用一个分隔文本和值的自定义类,否则不要认为你可以这样做。你从哪里得到的?有参考吗?因为我找不到setItemText方法Hi,您可以在QComboBox类文档中找到该方法:[link]()从来都不知道我可以像这样编辑项的文本<代码>组合框。项[int index]=“新文本”