【问题标题】:How to remove the focused row when a gridview is initially loaded最初加载gridview时如何删除焦点行
【发布时间】:2013-07-24 17:24:33
【问题描述】:

我的屏幕上加载了一个 DevExpress 网格视图。最初,我不希望它专注于任何行。只有在用户选择一行之后,我才希望有焦点。有没有办法做到这一点?

【问题讨论】:

    标签: c# winforms gridview focus devexpress


    【解决方案1】:

    如果您在网格上启用了多行选择选项,您可以调用

     gridView1.ClearSelection();
    

    gridview 上的方法。但是,如果它不能使您必须调用

    gridView1.UnselectRow(5); 
    

    方法。您可以阅读所有此类方法here

    【讨论】:

    • 感谢您的澄清。有没有办法确定网格最初加载的时间?现在我在 FocusedRowChanged 方法中有以下代码: DataRow row = gridView.GetFocusedDataRow(); if (row == null) clearControlValues();我在我的 InitializeComponent 方法之后立即放置了 ClearSelection,但这似乎不起作用。
    • 为什么要处理FocusedRowChanged,你可以在分配给datasource之后调用你的方法
    • 我最初尝试在将数据源分配给gridview后立即调用ClearSelection方法,但第一行的焦点仍然存在。
    • 你的gridview是否启用了多选?
    • 我刚刚意识到我没有。我用 UnselectRow(0) 语句尝试了同样的事情,但没有运气。让我再看看我的代码,看看是否发生了什么有趣的事情,我会尽快回复你。
    【解决方案2】:

    使用 Mvvm 模式,你可以试试这个。 我有同样的问题,并通过覆盖 GridView 的 OnPropertyChanged 事件解决了它

    protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e) { base.OnPropertyChanged(e); this.ClearSelection(); }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多