2009-07-10 5 views
6

私はDataGridViewを持っていますが、その列の1つはDataGridViewComboBoxColumnです。グリッドにデータが入力されると、その列の各セルにドロップダウンの矢印が表示されるため、その列の表示が異なります。ドロップダウン矢印が非表示になり、行が実際に強調表示されているとき、またはコンボボックスセルが編集用に選択されているときにのみ表示されるように、これを変更したいと思います。私が望む振る舞いは、のプロパティウィンドウののVisual Studioの値の扱い方と同じです。Visual StudioのプロパティウィンドウのようなDataGridViewComboBoxColumnのドロップダウン矢印を非表示にするにはどうすればよいですか?

答えて

9

DataGridViewComboBoxColumnには、DisplayStyleというプロパティがあります。 DataGridViewComboBoxDisplayStyle列挙についてDropDownButton

さらなる情報は、このMSDN link

+0

完璧!ちょうど私が探していたもの。 – dawntrader

+2

その場合は、受け入れられた回答としてマークすることをお勧めします。 – Joe

+1

'DataGridViewComboBoxColumn.DisplayStyleForCurrentCellOnly = True'を設定することは別のオプションです。 – SSS

0

で入手できます非表示にするNothingにそれを設定し、これを見つけるために、私にしばらく時間がかかったが、上記は、他のページのカップルと混合して答えました。

これは、別の値の値に基づいてグリッドからドロップダウンを非表示にする方法です。 valueToCheckは、非表示にするドロップダウンを含むセルの前にある必要があります。

Private Sub dgv_CellPainting(ByVal sender As Object, ByVal e As 
     DataGridViewCellPaintingEventArgs) Handles dgv.CellPainting 

    'Pages Grid needs to be edited when rendering 
    If (e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0) Then 
     Dim valueToCheck = dgv.Rows(e.RowIndex).Cells(2).Value 

     If (valueToCheck <> "True") Then 
      Dim thisCol = DirectCast(dgv.Rows(e.RowIndex).Cells(e.ColumnIndex), DataGridViewComboBoxCell) 
      thisCol.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing 
      e.PaintBackground(e.ClipBounds, False) 
      e.Handled = True 
     End If 
    End If 

End Sub 
0

DataGridViewComboBoxColumn.DisplayStyleForCurrentCellOnly = Trueを設定すると、セルが現在のセルのときにのみドロップダウンが表示されます。

関連する問題