在 winform 中 DataGrid 中实现点击任一单元格都选中当前行

在 winform 中 DataGrid 中实现点击任一单元格都选中当前行

先需要重写一个方法: C#:

     internal   class  DataGridNoActiveCellColumn : System.Windows.Forms.DataGridTextBoxColumn      {         //重载DataGridTextBoxColumn类的Edit方法,以便使点击DataGrid中任一单元格都选中当前行         protected override void Edit(CurrencyManager source, int rowNum, Rectangle bounds, bool readOnly, string instantText, bool cellIsVisible)         {             int SelectedRow = rowNum;             this.DataGridTableStyle.DataGrid.Select(SelectedRow);         }     }
vb.net :
Friend   Class DataGridNoActiveCellColumn     Inherits System.Windows.Forms.DataGridTextBoxColumn     '重载DataGridTextBoxColumn类的Edit方法,以便使点击DataGrid中任一单元格都选中当前行     Protected Overloads Overrides Sub Edit(ByVal [source] As CurrencyManager, ByVal rowNum As IntegerByVal bounds As Rectangle, ByVal [readOnlyAs BooleanByVal instantText As StringByVal cellIsVisible As Boolean)         Dim SelectedRow As Integer = rowNum         Me.DataGridTableStyle.DataGrid.Select(SelectedRow)     End Sub End Class
设置datagrid样式:
     Private   Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click         Dim tab As New DataTable("mytab")         For i As Int32 = 0 To 1             tab.Columns.Add(New DataColumn("A" & i, Type.GetType("System.Decimal")))         Next         tab.Columns(1).Expression = "Avg(a0)"         Dim r As DataRow         For i As Int32 = 0 To 10             r = tab.NewRow             r("A0"= 5 + i             tab.Rows.Add(r)         Next         Me.DataGrid1.DataSource = tab         Dim tabStyle As New DataGridTableStyle         Dim rCell As New DataGridNoActiveCellColumn         rCell.MappingName = tab.Columns(0).ColumnName         rCell.HeaderText = tab.Columns(0).ColumnName         tabStyle.GridColumnStyles.Add(rCell)         rCell.MappingName = tab.Columns(1).ColumnName         rCell.HeaderText = tab.Columns(1).ColumnName         rCell.Width = 100         tabStyle.GridColumnStyles.Add(rCell)         tabStyle.MappingName = tab.TableName         Me.DataGrid1.TableStyles.Add(tabStyle)     End Sub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值