C# 从未绑定列中的DataGridViewComboBoxCell获取选定索引和选定项
我有一个大问题,让我非常困惑,我有一个DataGridView而没有使用绑定,它有DataGridViewComboxColumn(未绑定列),我想在ComboxCell中获得选中的索引或选中的项(我的项我的自定义项) 我尝试投出或关注此网站(),但我只收到错误: “值不是无效的” 。那我怎么解决呢? 请帮帮我。谢谢。 以下是combobox中的自定义项:C# 从未绑定列中的DataGridViewComboBoxCell获取选定索引和选定项,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,我有一个大问题,让我非常困惑,我有一个DataGridView而没有使用绑定,它有DataGridViewComboxColumn(未绑定列),我想在ComboxCell中获得选中的索引或选中的项(我的项我的自定义项) 我尝试投出或关注此网站(),但我只收到错误: “值不是无效的” 。那我怎么解决呢? 请帮帮我。谢谢。 以下是combobox中的自定义项: public class CustomItem { public string Text { get; set; } pub
public class CustomItem {
public string Text { get; set; }
public object Value { get; set; }
public override string ToString() {
return Text;
}
public CustomItem(string text, object value) {
this.Text = text;
this.Value = value;
}
}
以及如何将其添加到DataGridViewComboBoxColumn:
List<CustomItem> teamItem = new List<CustomItem>();
teamItem.Add(new CustomItem(this._homeTeam["Name"].ToString(), Convert.ToInt32(this._homeTeam["Id"])));
teamItem.Add(new CustomItem(this._awayTeam["Name"].ToString(), Convert.ToInt32(this._awayTeam["Id"])));
foreach (CustomItem i in teamItem) {
((DataGridViewComboBoxColumn)this.dataGridViewGoalInformation.Columns["Team"]).Items.Add(i);
}
List teamItem=new List();
teamItem.Add(新的CustomItem(this._homeTeam[“Name”].ToString(),Convert.ToInt32(this._homeTeam[“Id”]));
teamItem.Add(新的CustomItem(this.\u awayTeam[“Name”].ToString(),Convert.ToInt32(this.\u awayTeam[“Id”]));
foreach(teamItem中的CustomItem i){
((DataGridViewComboxColumn)this.dataGridViewGoalInformation.Columns[“Team”]).Items.Add(i);
}
给定CustomItem类,值为int
public class CustomItem
{
public string Text { get; set; }
public int Value { get; set; }
public override string ToString()
{
return Text;
}
public CustomItem(string text, int value)
{
this.Text = text;
this.Value = value;
}
}
要获取该值,请确保连接事件:EditingControlShowing
dataGridView1.EditingControlShowing += dataGridView1_EditingControlShowing;
然后,要在组合框更改时从中获取值:1)获取组合框控件,2)然后获取其选定值:
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (dataGridView1.CurrentCell.ColumnIndex == 0 && e.Control is ComboBox)
{
ComboBox comboBox = e.Control as ComboBox;
comboBox.SelectedIndexChanged += ComboBox_SelectedIndexChanged;
}
}
private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
DataGridViewComboBoxEditingControl dataGridViewComboBoxEditingControl = sender as DataGridViewComboBoxEditingControl;
object value = dataGridViewComboBoxEditingControl.SelectedValue;
if (value != null)
{
int intValue = (int)dataGridViewComboBoxEditingControl.SelectedValue;
//...
}
}
DataGridViewComboxCell c=新的DataGridViewComboxCell();c=DataGridView1.Rows(0.Cells)(“MyColumnName”);c、 Items.Add(“Item1”)@CarlProthman我想在我的组合框单元格中获取所选索引或所选项目,如我所说。我也在代码中显示了我的CustomItem。你对我有什么想法吗?对不起,误读了你的问题。看看这个答案。。。但我必须捕获datagridview中的什么事件?您可以在单击按钮时访问它(例如SaveButton)。然后访问控件的选定值。我无法使用
DataGridViewComboxeditingControl.SelectedValue
获取选定值,但我可以使用DataGridViewComboxeditingControl.Items[DataGridViewComboxeditingControl.SelectedIndex]
获取选定值。