无法 select WinForms DevExpress GridControl 中的单列值
Unable to select single column's values in WinForms DevExpress GridControl
我有 DevExpress GridControl
和一个默认值 GridView
来显示我表单中的记录。我已将值绑定到 SQL 数据库 table 的 GridControl
。在这里,我想 select 单列的值作为数组或类似的东西使用鼠标点击任何组合键。我用谷歌搜索并使用 CheckBox
列获得 solution 到 select 多行。
但是,我的情况不同。我想 select 单列的值作为数组。
编辑:
我也在寻找一个答案,当用 header 列中的任何组合键单击时,需要 突出显示所有单元格值(类似于我们在 Microsoft [=28] 中有一个选项=]).
提前致谢。
我不认为有 built-in 方法可以做到这一点。您可以遍历行并使用 ColumnView.GetRowCellValue
访问特定列中的单元格。
像这样的东西应该可以工作:
//get the number of rows in a target view (gridView for example)
int rowsCount = gridView.DataRowCount;
//allocate an array for column values
var columnValues = new object[rowsCount];
//get column by field name
var column = gridView.Columns["ColumnName"];
//loop through rows and populate column values
for (int rowIndex = 0; rowIndex < rowsCount; rowIndex++)
{
columnValues[rowIndex] = gridView.GetRowCellValue(rowIndex, column);
}
更新: 可以参考DevExpress知识库中的官方示例:How to select cells under by clicking the GridBand or the column header.
您需要做什么:
- 处理网格视图上的
MouseDown
事件;
- 使用
CalcHitInfo
检测对列 header 的点击(查看此问题:“Detect the column header region in the mouse down event of a grid)" and this knowledge base article: "Hit Information”;
然后使用GridView.SelectCell
更新选择
private void SelectCells(GridColumn column) {
for (int i = 0; i < column.View.RowCount; i++)
column.View.SelectCell(i, column);
}
如果您的网格视图是可编辑的,单元格编辑器可能会窃取 MouseDown
事件。在这种情况下,您需要按照本讨论中的描述重新配置网格:GridView - How to catch a cell click?
我有 DevExpress GridControl
和一个默认值 GridView
来显示我表单中的记录。我已将值绑定到 SQL 数据库 table 的 GridControl
。在这里,我想 select 单列的值作为数组或类似的东西使用鼠标点击任何组合键。我用谷歌搜索并使用 CheckBox
列获得 solution 到 select 多行。
但是,我的情况不同。我想 select 单列的值作为数组。
编辑: 我也在寻找一个答案,当用 header 列中的任何组合键单击时,需要 突出显示所有单元格值(类似于我们在 Microsoft [=28] 中有一个选项=]).
提前致谢。
我不认为有 built-in 方法可以做到这一点。您可以遍历行并使用 ColumnView.GetRowCellValue
访问特定列中的单元格。
像这样的东西应该可以工作:
//get the number of rows in a target view (gridView for example)
int rowsCount = gridView.DataRowCount;
//allocate an array for column values
var columnValues = new object[rowsCount];
//get column by field name
var column = gridView.Columns["ColumnName"];
//loop through rows and populate column values
for (int rowIndex = 0; rowIndex < rowsCount; rowIndex++)
{
columnValues[rowIndex] = gridView.GetRowCellValue(rowIndex, column);
}
更新: 可以参考DevExpress知识库中的官方示例:How to select cells under by clicking the GridBand or the column header.
您需要做什么:
- 处理网格视图上的
MouseDown
事件; - 使用
CalcHitInfo
检测对列 header 的点击(查看此问题:“Detect the column header region in the mouse down event of a grid)" and this knowledge base article: "Hit Information”; 然后使用
GridView.SelectCell
更新选择private void SelectCells(GridColumn column) { for (int i = 0; i < column.View.RowCount; i++) column.View.SelectCell(i, column); }
如果您的网格视图是可编辑的,单元格编辑器可能会窃取 MouseDown
事件。在这种情况下,您需要按照本讨论中的描述重新配置网格:GridView - How to catch a cell click?