【问题标题】:How to disable 'new item row' area in Devexpress grid如何在 Devexpress 网格中禁用“新项目行”区域
【发布时间】:2016-05-02 14:33:55
【问题描述】:

我在 Devexpress 中有一个网格视图。在网格的顶部,我有一个空白 允许我向网格添加新客户端的区域。问题是 当我点击右栏附近的空白区域时,就好像我有 点击了“Suprimer”按钮。我想禁用那个正确的区域,这样当我点击它时,什么都不会发生。所以这意味着,如果我单击空白区域的左侧,我只能添加一个新客户端。

我尝试过使用 ShowingEditor,但无法让它工作:

Private Sub gvException_ShowingEditor(sender As Object, e As CancelEventArgs) Handles gvException.ShowingEditor

        If gvException.IsNewItemRow(gvException.FocusedRowHandle) Then
            gvException.Columns("Supprimer").OptionsColumn.ReadOnly = True
            buttonDeleteException.Buttons(0).Caption = "Supprimer"
            'e.Cancel = True
        Else
            gvException.Columns("Supprimer").OptionsColumn.ReadOnly = False
            e.Cancel = False
        End If
    End Sub

【问题讨论】:

  • 真的,你问问题的方式......首先它说'supprimer',它不是一个按钮。它看起来像一个列标题。其次,当您按下它时,您的代码可能会添加一个新客户端。我们不知道!那你在说什么?第三,除非您创建了自定义控件,否则没有“gridview”之类的东西,它看起来像一个 datagridview。如果您要求其他人解开您的意大利面,这些都是重要的细节。但我认为你需要捕捉datagridview的鼠标点击事件。并采取措施防止第二列标题被点击
  • 首先,图片上有10个“Supprimer”按钮(箭头指向第一个“Supprimer”按钮上方的区域,而不是标题)。其次,是的,有添加新客户端的代码,它在您单击第一个“Supprimer”按钮上方的空白区域时运行。第三,它是来自 Devexpress 的 Gridview(不是 DataGridView),如问题标题中所述。

标签: vb.net gridview devexpress


【解决方案1】:

使用这个:

Private Sub gvException_ShowingEditor(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles gvException.ShowingEditor
    If gvException.IsNewItemRow(gvException.FocusedRowHandle) and gvException.FocusedColumn.FieldName = "Supprimer" Then
        e.Cancel = True
    End If
End Sub

【讨论】:

  • 感谢 Abdellah,这很有效,但以下是我正在寻找的更多内容:Private Sub GridView1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Dim view As GridView = TryCast(sender, GridView) Dim hitinfo = view.CalcHitInfo(e.Location) If hitinfo.InRowCell AndAlso hitinfo.RowHandle = GridControl.NewItemRowHandle AndAlso hitinfo.Column.FieldName = "Info" Then DXMouseEventArgs.GetMouseArgs(e).Handled = True End If End Sub
  • 是的,很好,但是这个代码对 Click 很有效,但是如果你用键盘(tab 键)在新行的字段之间传递,它不会禁用 'Supprimer' 按钮的 clik 事件.您必须使用事件代码ShowingEditorMouseDown
  • 不确定你的意思。你的意思是当我使用'tab'键从'client'字段移动到'Supprimer'字段时。我没有处理“输入”或“空格”键,因此永远不会触发点击。
  • 是的,正是我的意思,如果你不处理按钮键,那很好。
猜你喜欢
  • 1970-01-01
  • 2013-07-23
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多