Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从未绑定列中的DataGridViewComboBoxCell获取选定索引和选定项_C#_.net_Winforms_Datagridview - Fatal编程技术网

C# 从未绑定列中的DataGridViewComboBoxCell获取选定索引和选定项

C# 从未绑定列中的DataGridViewComboBoxCell获取选定索引和选定项,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,我有一个大问题,让我非常困惑,我有一个DataGridView而没有使用绑定,它有DataGridViewComboxColumn(未绑定列),我想在ComboxCell中获得选中的索引或选中的项(我的项我的自定义项) 我尝试投出或关注此网站(),但我只收到错误: “值不是无效的” 。那我怎么解决呢? 请帮帮我。谢谢。 以下是combobox中的自定义项: public class CustomItem { public string Text { get; set; } pub

我有一个大问题,让我非常困惑,我有一个DataGridView而没有使用绑定,它有DataGridViewComboxColumn(未绑定列),我想在ComboxCell中获得选中的索引或选中的项(我的项我的自定义项)

我尝试投出或关注此网站(),但我只收到错误:

“值不是无效的”

。那我怎么解决呢? 请帮帮我。谢谢。 以下是combobox中的自定义项:

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]
获取选定值。