C#在datagridview中选择行时显示数据

时间:2014-10-03 11:26:14

标签: c#

如果在其他地方已经回答了这个问题,请提前道歉(经过几个小时的搜索,我们找不到答案)。

无论如何,我的代码有效,我已经使用按钮对其进行了测试。 选择行然后单击按钮,它将显示正确的数据。

但我希望它在我选择行时显示数据,而不是选择一行然后按一个按钮。

我的代码:

private void dgvRecipes_CellContentClick(object sender, 
                                         DataGridViewCellEventArgs e)
{

  if (dgvRecipes.SelectedRows.Count > 0)
  {
     int selectedRecipe = 
         int.Parse(dgvRecipes.SelectedRows[0].Cells[0].Value.ToString());

     lblRecipe.Text = dgvRecipes.SelectedRows[0].Cells[1].Value.ToString();

     string selectStr = "SELECT IngredDesc, IngredAmt, IngredComment " +
            "FROM Ingredient, RecipeIngredients 
             WHERE RecipeIngredients.RecipeNo = " + selectedRecipe +
             " AND Ingredient.IngredID = RecipeIngredients.IngredID ";


     dbCmd = new SqlCommand(selectStr, dbConn);
     dbAdapter = new SqlDataAdapter(dbCmd);
     dbAdapter.Fill(ds, "RecipeIngredients");
     dgvIngredients.DataSource = ds.Tables["RecipeIngredients"];

     selectStr = "SELECT InstructionNo, Instructions FROM RecipeInstructions "
                + "WHERE RecipeInstructions.RecipeNo = " + selectedRecipe;


     dbCmd = new SqlCommand(selectStr, dbConn);
     dbAdapter = new SqlDataAdapter(dbCmd);
     dbAdapter.Fill(ds, "RecipeInstructions");
     dgvInstructions.DataSource = ds.Tables["RecipeInstructions"];

  }

}

如果我没有正确地表达我的问题并严重列出代码,请再次道歉。

3 个答案:

答案 0 :(得分:1)

您只需要添加Selection Change event Datagridview:

private void DataGridView1_SelectionChanged(object sender, EventArgs e)
{
    ......
}

要解释TaW有用的评论,您必须进入DatagridView的properties(来自VS设计),选择Events标签,然后双击SelectionChange事件

答案 1 :(得分:0)

您通常通过绑定来执行此操作,因此文本框显示相同的值,而后面​​没有任何额外的代码。 但是:您还可以更改datagrid中名为“selectionmode”的属性;你应该设置selectRow。然后,您可以找到相应的事件,并将按钮下的代码移动到该事件

答案 2 :(得分:0)

使用DataGridView的{​​{3}}事件。

只要选择取消以编程方式用户操作

SelectionChanged事件就会发生