C# 如何获取单元格值按钮单击DataGrid C

C# 如何获取单元格值按钮单击DataGrid C,c#,winforms,visual-studio-2010,C#,Winforms,Visual Studio 2010,当我单击按钮时,我想在ShowRichMessageBox中的一行中显示一个特定的单元格值,但如果单击行上的任意位置,此事件将显示单元格值 这里出了什么问题……我如何解决上述问题 我有一些较大的日志值,但它已经加载到单元格中,所以, 在datagridview中选择特定行时,是否可以展开该行 传递给CellClick事件处理程序的实例具有一个属性,您可以检查该属性以查看单击是否来自按钮列 像这样: private void dgv_buttonCol(object sender, DataGri

当我单击按钮时,我想在ShowRichMessageBox中的一行中显示一个特定的单元格值,但如果单击行上的任意位置,此事件将显示单元格值

这里出了什么问题……我如何解决上述问题

我有一些较大的日志值,但它已经加载到单元格中,所以, 在datagridview中选择特定行时,是否可以展开该行

传递给CellClick事件处理程序的实例具有一个属性,您可以检查该属性以查看单击是否来自按钮列

像这样:

private void dgv_buttonCol(object sender, DataGridViewCellEventArgs e)
{
        if (e.ColumnIndex != 4) // Change to the index of your button column
        {
             return;
        }

        if (e.RowIndex > -1)
        {
            string name = Convert.ToString(dgv.Rows[e.RowIndex].Cells[2].Value);
            ShowRichMessageBox("Code", name);
        }
}
对于问题的第二部分,我不确定您的意思,但您当然可以更改行高,可能在SelectionChanged事件中使用,或者如果您想做更深入的事情,请参见传递给CellClick事件处理程序的实例有一个属性,您可以检查单击是否来自按钮列

像这样:

private void dgv_buttonCol(object sender, DataGridViewCellEventArgs e)
{
        if (e.ColumnIndex != 4) // Change to the index of your button column
        {
             return;
        }

        if (e.RowIndex > -1)
        {
            string name = Convert.ToString(dgv.Rows[e.RowIndex].Cells[2].Value);
            ShowRichMessageBox("Code", name);
        }
}

对于问题的第二部分,我不确定您的意思,但您当然可以更改行高,可能在SelectionChanged事件中使用,或者如果您想做更深入的事情,请参见

:请您指出并在代码中告诉我。请给我更多…请尝试您的解决方案,但这次没有显示ShowRichMessageBox。当你点击按钮时,按钮的位置在第9列,e.ColumnIndex的值是多少?@Stuart Dunkeld:code之前有date列,所以按钮视图就在深度单位之后,我需要的值是code@linguini那么,您是从错误的列中获取值的吗?:请您指出并在代码中告诉我。请给我更多…请尝试您的解决方案,但这次没有显示ShowRichMessageBox。当你点击按钮时,按钮的位置在第9列,e.ColumnIndex的值是多少?@Stuart Dunkeld:code之前有date列,所以按钮视图就在深度单位之后,我需要的值是code@linguini那么,您是否从错误的列中获取了值?
private void dgv_buttonCol(object sender, DataGridViewCellEventArgs e)
{
        if (e.ColumnIndex != 4) // Change to the index of your button column
        {
             return;
        }

        if (e.RowIndex > -1)
        {
            string name = Convert.ToString(dgv.Rows[e.RowIndex].Cells[2].Value);
            ShowRichMessageBox("Code", name);
        }
}