如何在Windows窗体应用程序(C#)中根据文本而不是值更改选定的组合框项目?

时间:2014-03-26 19:06:23

标签: c# .net winforms datagridview combobox

我正在开发一个Windows窗体应用程序,我正在尝试使用Windows窗体应用程序中的文本框和组合框(下拉列表)编辑Datagridview中所选行的数据。 Datagridview中有一个名为status的列,其值为text(例如status =“start”)。我需要在Datagridview中更改所选行的状态列上的预填充组合框。

我在组合框的选定值中得到空值

combobox1.SelectedValue = dataGridView1.Rows[rowIndex].Cells["Status"].Value.ToString();

哪里

dataGridView1.Rows[rowIndex].Cells["Status"].Value.ToString() = "Start"

有没有办法在使用C#的Windows窗体应用程序中更改所选的组合框选项depanding on text而不是value?

2 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您在DataGridView中有两列:一列包含文本,另一列包含组合框,您希望所选的组合框元素随文本一起更改。

我不能过于具体,因为您还没有发布任何代码,但为了让您入门,您可能希望使用事件处理程序监听文本框列中的更改:

myDataGridView.CellClick += myDataGridView_CellClick;

...

void myDataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex != TEXTBOX_COLUMN_ID) return;
    object value = myDataGridView[e.ColumnIndex, e.RowIndex].Value;
}

然后,本地变量值将包含输入到文本框列中的内容。从那里,您需要在同一行中找到下拉框(使用e.RowIndex)并根据需要调整其值。

答案 1 :(得分:0)

在" CellClick"事件,也许您应该将行输入到DataGridViewRow对象中,然后说明所选行中的那个单元格是否包含"开始",运行一个填充组合框的函数?

例如:

        DataGridViewRow row = dataGridView1.Rows[rowIndex];
        if (row.Cells["Status"].Value.ToString() == "Start")
        {
            //fill combobox with needed information
        }