XtraGrid 整行突出显示,除了单击的单元格

Posted

技术标签:

【中文标题】XtraGrid 整行突出显示,除了单击的单元格【英文标题】:XtraGrid whole row is highlighted except the clicked cell 【发布时间】:2012-05-12 07:33:24 【问题描述】:

当我在下面的 GridView 中选择一行时,我的鼠标停留在的单元格(换句话说,我左键单击的单元格)以选择一行时,不会突出显示,而该行的其余单元格都是突出显示。

感谢您的帮助。

GridView myView = (GridView)oGrid.MainView;
myView.OptionsSelection.MultiSelect = true;
myView.OptionsSelection.MultiSelectMode = GridMultiSelectMode.RowSelect;

if (myView.RowCount > 0)

    frmChangeMyStatus ff = new frmChangeMyStatus(ccfrms);
    DialogResult dr = ff.ShowDialog();

    if (dr == DialogResult.OK)
    
        for (int i = 0; i < myView.SelectedRowsCount; i++)
        
            row = myView.GetSelectedRows()[i];
               //...........
        
    

【问题讨论】:

这是 DevExpress XtraGrid 吗? @Yuris Guts:我想是的。任何想法将不胜感激。 【参考方案1】:

如果您希望焦点单元格看起来像焦点所在行中的任何其他单元格,请在视图属性中禁用焦点单元格样式。您可以通过两种不同的方式做到这一点:

在运行时:

myView.OptionsSelection.EnableAppearanceFocusedCell = false;

在设计时:调用 XtraGrid 设计器,选择 Views ::(您的视图) :: OptionsSelection :: 将 EnableAppearanceFocusedCell 设置为 False

如果您可以访问 XtraGrid 设计器,如果您需要更复杂的样式规则,可以查看外观部分。

【讨论】:

【参考方案2】:

除了上面Yuriy Guts 所说的关于视图的焦点单元格外观,如果选定的单元格是可编辑的,它仍然不会突出显示该单元格。

因此,如果单元格不需要可编辑,您可以为该列设置OptionsColumn.AllowEdit = false。否则,如果用户通过单击一个单元格来选择一行,那么您必须接受这种外观,以便用户知道他们当前正在编辑哪个单元格。

【讨论】:

谢谢,但我在 DevXpress 的 GridView 中找不到 OptionsColumn.AllowEdit。 它是列的属性,而不是直接的视图。 再次感谢,使用 Yuriy 的建议解决了我的问题,我不必将 AllowEdit 设置为 false,可能是因为在设计时它默认设置为 false。但我非常感谢您跟进我的问题,我确实找到了 AllowEdit 属性。再次感谢。

以上是关于XtraGrid 整行突出显示,除了单击的单元格的主要内容,如果未能解决你的问题,请参考以下文章

如何基于公式突出显示excel中的行

如何在 DevExpress XtraGrid 中获得单击的单元格列

NSTableView:直接编辑文本字段而不突出显示整行

不能 :hover 整行表格

整行和单元格的 Google 表格条件格式

单击时突出显示表格视图单元格