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

C# C在datagridview中选择行时显示数据,c#,C#,如果这个问题在其他地方得到了回答,那么请提前道歉。经过几个小时的搜索,您还没有找到答案 不管怎样,我的代码是有效的,我已经用一个按钮对它进行了测试。 选择行,然后单击按钮,它将显示正确的数据 但我希望它在我选择行时显示数据,而不是选择一行然后按下按钮 我的代码: private void dgvRecipes_CellContentClick(object sender, DataGridViewCellEven

如果这个问题在其他地方得到了回答,那么请提前道歉。经过几个小时的搜索,您还没有找到答案

不管怎样,我的代码是有效的,我已经用一个按钮对它进行了测试。 选择行,然后单击按钮,它将显示正确的数据

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

我的代码:

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"];

  }

}
再次,如果我没有正确表达我的问题,并且代码设置不正确,我深表歉意。

您只需要添加Datagridview的一部分:

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

要解释有用的注释,您必须从VS desgin进入DatagridView的属性,选择“事件”选项卡并双击SelectionChange Event(选择更改事件)

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

使用DataGridView的事件


无论是通过编程还是通过用户操作,只要选择单元格或取消选择,SelectionChanged事件就会发生。

我尝试了这个方法,但没有任何帮助。谢谢你的回复。这应该行得通;你是否真的连接了活动或只是添加了代码??谢谢!,使用“事件”选项卡可以更改它。第二次提到SelectionChanged,也许我遗漏了什么,因为它没有改变任何东西。它应该是这样的:private void dgvRecipes_SelectionChangedobject sender,EventArgs e{code here}