2017-09-18 9 views
2

DevExpress社 16.1を使用しています、私は は、今私は、列方向で選択したい、xtragridに私のデータテーブルを結合しながら、クリック列ヘッダ、任意のオプションはxtragridことで、これをそこachiveする場合。xtragridのdevexpressでcolumnheaderをクリックしながらcolumnwiseを選択しますか?

これらは

gridview1.optionsselection.multiselect = True 
gridview1.optionsselection.multiselectMode = cellselect 
+0

列見出しをクリックすると、既定で列が並べ替えられます。マウスのクリック時に列を並べ替える機能を無効にするか、ユーザーが列ヘッダーをクリックして選択する際にキー(Ctrlキーなど)を押したままにしておくことを期待していますか? – Brendon

+0

はい、私はそれを変更しました。列ヘッダーのソートは無効になっていますが、列ヘッダーの列(縦方向)をクリックするとデータが表示されます – Shankar

+0

GridViewのオーバーロードされたSelectCellsメソッドを使用して、クリックした? https://documentation.devexpress.com/WindowsForms/DevExpress.XtraGrid.Views.Grid.GridView.SelectCells.method(sh0-JQ) – Brendon

答えて

2

このコードを試してみてください、すべてのものを試していますされています(GRIDCONTROLマウスダウンイベントを使用して)

VB.net: 
Dim hitInfo = GridView1.CalcHitInfo(e.Location) 
If e.Button = Windows.Forms.MouseButtons.Left Then 
    For Each column As GridColumn In GridView1.Columns 
     If column.FieldName = hitInfo.Column.FieldName Then 
      hitInfo.Column.AppearanceCell.BackColor = Color.FromArgb(226, 234, 253)      
     Else 
      GridView1.Columns(column.FieldName).AppearanceCell.BackColor = Nothing 
     End If 
    Next 
End If 

C#: 
var hitInfo = GridView1.CalcHitInfo(e.Location); 
if (e.Button == Windows.Forms.MouseButtons.Left) 
{ 
    foreach (GridColumn column in GridView1.Columns) 
    { 
     if (column.FieldName == hitInfo.Column.FieldName) 
     { 
      hitInfo.Column.AppearanceCell.BackColor = Color.FromArgb(226, 234, 253); 
     } 
     else 
     { 
     GridView1.Columns(column.FieldName).AppearanceCell.BackColor = null; 
     } 
    } 
} 

GridView.CalcHitInfo方法は、行ハンドルを取得するために呼び出されます。フォーカスがこの行に移動され、カスタムコンテキストメニューが呼び出されます。

関連する問題