2016-05-02 4 views
0

Devexpressにグリッドビューがあります。グリッドの上部には空の 領域があり、グリッドに新しいクライアントを追加することができます。問題は、 右の列の近くの空白部分をクリックすると、「Supprimer」ボタンをクリックしたのと同じように表示されます。 私はそれをクリックすると何も起こらないように、その正しい領域を無効にしたいと思います。つまり、ブランク領域の左側をクリックするだけで新しいクライアントを追加できます。Devexpressグリッドで 'new item row'領域を無効にする方法

私は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 

enter image description here

+0

本当に、あなたのを頼む方法質問...最初は、それがボタンではなく「supprimer」と書かれています。列見出しのように見えます。第二に、あなたがそれを押すと、あなたのコードはおそらく新しいクライアントを追加します。私たちはそれを知らない!それでは何をお話していますか?第三に、あなたがカスタムコントロールをcreadedしない限り、 'gridview'のようなものはありません、それはdatagridviewのように見えます。あなたのスパゲティを解くよう他の人に頼む場合、これらは重要な詳細です。しかし、私はあなたがdatagridviewのマウスクリックイベントをキャッチする必要があると思う。 2番目の列ヘッダーがクリックされないようにするには – Lectere

+0

最初に、写真に10個の 'Supprimer'ボタンがあります(矢印はヘッダーではなく、最初の 'Supprimer'ボタンの上を指しています)。 第2に、新しいクライアントを追加するコードがあります。最初の 'Supprimer'ボタンの上にある空白の領域をクリックすると実行されます。 Thrid、質問のタイトルに記載されているように、DevexpressのGridview(DataGridViewではない)です。 – Eric

答えて

0

使用この:

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 
+0

ありがとうAbdellah、これは働いていましたが、私が探していたのは次のようなものでした: 'Private Sub GridView1_MouseDown(ByVal送信者オブジェクト、ByVal e MouseEventArgs) DimView As GridView = TryCast(送信者、GridView) Dim hitinfo = view。 CalcHitInfo(e.Location) もしhitinfo.InRowCell AndAlso hitinfo.RowHandle = GridControl.NewItemRowHandle AndAlso hitinfo.Column.FieldName = "情報" その後 DXMouseEventArgs.GetMouseArgs(E).Handled = Trueの エンド End Subの場合は ' – Eric

+0

はい良いですが、このコードはClickでうまくいきますが、キーボード(Tabキー)で新しい行のフィールドを渡すと、 'Supprimer'ボタンのclikイベントは無効になりません。 'ShowEditor'と' MouseDown'というイベントのコードを使用する必要があります。 –

+0

あなたは何を意味するのか正確には分かりません。あなたは 'クライアント'フィールドから 'Supprimer'フィールドに 'tab'キーを使って移動することを意味します。私は 'enter'または 'space'キーを処理していないので、クリックは決して発射されません。 – Eric

関連する問題