在 gridControl_tsbg_KeyDown 事件中获取当前行某个列的值,需要先获取当前选中的行,再从行中提取指定列的数据。以下是实现代码:
private void gridControl_tsbg_KeyDown(object sender, KeyEventArgs e)
{
    // 获取网格视图对象(假设使用的是GridView)
    var gridView = gridControl_tsbg.MainView as DevExpress.XtraGrid.Views.Grid.GridView;
    if (gridView == null) return;
    // 检查是否有选中的行
    if (gridView.FocusedRowHandle < 0) return; // 没有选中行时返回
    try
    {
        // 方法1:通过列名获取值(推荐,列名不变更时更稳定)
        string columnName = "你的列名"; // 替换为实际的列名
        object columnValue = gridView.GetRowCellValue(gridView.FocusedRowHandle, columnName);
        // 方法2:通过列索引获取值(不推荐,列顺序变动会导致错误)
        // int columnIndex = 0; // 替换为实际的列索引
        // object columnValue = gridView.GetRowCellValue(gridView.FocusedRowHandle, gridView.Columns[columnIndex]);
        if (columnValue != null)
        {
            // 处理获取到的值,根据实际类型转换
            string valueStr = columnValue.ToString();
            // 可以根据需要进行其他类型转换,如int、DateTime等
            // int valueInt = Convert.ToInt32(columnValue);
        }
        else
        {
            // 处理值为null的情况
        }
    }
    catch (Exception ex)
    {
        // 处理异常
        Console.WriteLine($"获取列值失败:{ex.Message}");
    }
}
关键说明:
- 获取GridView对象:通过 gridControl_tsbg.MainView转换为GridView(如果使用的是其他视图如BandedGridView,需对应转换)。
- 判断选中行:FocusedRowHandle < 0表示没有选中任何行,此时无需处理。
- 获取列值的两种方式:
- 推荐使用列名(GetRowCellValue(行索引, 列名)),列名在设计时设置,比列索引更稳定。
- 若使用列索引,需注意列顺序变动可能导致错误。
 
- 推荐使用列名(
- 类型转换:GetRowCellValue返回object类型,需根据实际数据类型转换(如string、int等)。
根据你的实际列名和数据类型修改代码中的 columnName 和类型转换部分即可。
 
 
                     
            
        













 
                    

 
                 
                    