C# 如何在datagridview combox列中存储id和名称

C# 如何在datagridview combox列中存储id和名称,c#,datagridview,combobox,C#,Datagridview,Combobox,我正在创建windows窗体应用程序。在该应用程序中,我为员工考勤创建了一个窗体 表单包含Datagridview,有两列,一列用于员工(即组合框列),另一列用于复选框列(无论员工是否在场)。我以编程方式创建的列 我有一个员工对象列表(包含员工姓名和ID) 我想在datagridview组合框列中存储员工的姓名和id 以便我可以使用员工id(不基于员工姓名)保存考勤详细信息 那么如何在datagrdiview组合框列中存储员工姓名和id(两者) 我想在组合框列中显示员工姓名,而不是员工id 所以

我正在创建windows窗体应用程序。在该应用程序中,我为员工考勤创建了一个窗体

表单包含Datagridview,有两列,一列用于员工(即组合框列),另一列用于复选框列(无论员工是否在场)。我以编程方式创建的列

我有一个员工对象列表(包含员工姓名和ID)

我想在datagridview组合框列中存储员工的姓名和id 以便我可以使用员工id(不基于员工姓名)保存考勤详细信息 那么如何在datagrdiview组合框列中存储员工姓名和id(两者)

我想在组合框列中显示员工姓名,而不是员工id


所以请提供解决方案

实现这一点的一种方法是将对象添加到combobox项(combobox.items.Add(EmployeeObject)),然后将控件(combobox)的DispayMember属性设置为name属性(或成员)。下一个示例创建一个包含10个具有唯一ID的Johns的列表,并获取当前选定项目的ID

  public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        for (int i = 0; i < 10; i++)
        {
            ComboboxItem item = new ComboboxItem("John", i);
            comboBox1.Items.Add(item);



        }
        comboBox1.DisplayMember = "Name";
    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        ComboboxItem item = (ComboboxItem)comboBox1.SelectedItem;
        MessageBox.Show(item.ID.ToString());
    }
public Form1()
{
初始化组件();
}
私有void Form1\u加载(对象发送方、事件参数e)
{
对于(int i=0;i<10;i++)
{
ComboboxItem=新的ComboxItem(“John”,i);
comboBox1.Items.Add(item);
}
comboBox1.DisplayMember=“Name”;
}
私有无效组合框1\u SelectedIndexChanged(对象发送方,事件参数e)
{
ComboboxItem=(ComboboxItem)comboBox1.SelectedItem;
Show(item.ID.ToString());
}
也结帐


希望这有帮助。

每一行(我的意思是每一个comboboxcell)将容纳多少Employee对象?根据您的设计,似乎每一行都应该是textboxcolumn和checkboxcolumn,正如您所说,您需要检查每个员工的出席或缺席情况(除非在组合框中选择了每个值)。非常感谢您的帮助,lauCosma先生