XtraGrid整行被高亮显示,除了被点击的单元格

5
当我在以下 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吗? - Yuriy Guts
@Yuris Guts:我也这么认为。非常感谢任何想法。 - user1298925
2个回答

10

如果您希望选定单元格看起来与选定行中的其他单元格相同,请在视图属性中禁用选定单元格样式。您可以通过以下两种不同方式来实现:

  • 运行时:

    myView.OptionsSelection.EnableAppearanceFocusedCell = false;

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

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


1

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

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


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接