- 題名: DataGridViewCheckBoxCell 余白クリックでのON/OFF切替
- 日時: 2012/01/22 6:39:39
- ID: 29639
- この記事の返信元:
- (なし)
- この記事への返信:
- [29650] Re[1]: DataGridViewCheckBoxCell 余白クリックでのON/OFF切替2012/01/23 20:03:51
- ツリーを表示
■No29639に返信(さちもさんの記事) > それ以上の速度になると、チェックが切り替わらないことが度々あります。 コントロールパネルから、マウスのダブルクリック間隔を 最短値にすれば、ある程度は改善されるかと思います。 短時間で連続クリックした場合、CellMouseClick ではなく、 CellMouseDoubleClick に流れて行ってしまい、ズレが生じるようで。 http://msdn.microsoft.com/ja-jp/library/ms171543.aspx > 何か抜けているコードや設定があるのでしょうか。 MouseUp あたりの方が良いのかも。 Public Class Form1 Private WithEvents dgv As DataGridView Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load dgv = New DataGridView() With {.Dock = DockStyle.Fill} Controls.Add(dgv) dgv.Columns.Add(New DataGridViewTextBoxColumn() With {.Name = "ID", .HeaderText = "ID"}) dgv.Columns.Add(New DataGridViewCheckBoxColumn() With {.Name = "CHK1", .HeaderText = "CHK"}) dgv.Columns.Add(New DataGridViewCheckBoxColumn() With {.Name = "CHK2", .HeaderText = "CHK", .TrueValue = 1, .FalseValue = 0}) dgv.RowCount = 10 End Sub Private Sub dgv_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs) Handles dgv.MouseUp Dim ht = dgv.HitTest(e.X, e.Y) If ht.Type = DataGridViewHitTestType.Cell Then Dim cell = TryCast(dgv(ht.ColumnIndex, ht.RowIndex), DataGridViewCheckBoxCell) If cell IsNot Nothing Then cell.Value = If(cell.Value = cell.FalseValue, If(cell.TrueValue, True), cell.FalseValue) dgv.EndEdit() End If End If End Sub End Class
分類:[.NET]