C# 如何更改组合框项目的文本?
我有一个带有dataGridView列名称的组合框,我可以将组合框中显示的项目的文本更改为我想要的任何文本吗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
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]=“新文本”代码>