如何设置datagrid,使用户不可编辑?

tlcd 2005-03-01 10:55:33
使它显示出来的数据用户不可编辑,还有,比如正常显示出来最后一列默认总是可以填入数据,如何去掉?
把整个datagrid设成只读是不行的,因为我有一列是复选框,希望用户可以点击选择多行。
我试了,把单列设成只读也不行。

具体怎么做好?谢谢
...全文
294 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tlcd 2005-03-02
  • 打赏
  • 举报
回复
tbl.DefaultView.AllowNew = False 'tbl是datagrid关联的datatble
这句是最有用的,谢谢
以前我用的就是currentcellchanged写的,呵呵。
syeerzy 2005-03-01
  • 打赏
  • 举报
回复
我怎么记得好像默认就是不可编辑的吧??
xxuu503 2005-03-01
  • 打赏
  • 举报
回复
最好按照一楼的作

currentcellchanged事件很烦的,太容易被触发了,如果大量的逻辑写在里边

很容易出现古怪而难调的错误

(上次boss用currentcellchanged,最后bug都是让我调的,郁闷阿)
Night_Elf 2005-03-01
  • 打赏
  • 举报
回复
可以这样来判断:
DataGrid1默认只读
在DataGrid1_CurrentCellChange事件中

Private Sub DataGrid1_CurrentCellChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged
If DataGrid1.CurrentCell.ColumnNumber = 8 Then '如果是用户点击第9列
DataGrid1.ReadOnly = False
Else
DataGrid1.ReadOnly = True
End If
end sub
haoztao 2005-03-01
  • 打赏
  • 举报
回复
使用 datagrid的表样式
hamadou 2005-03-01
  • 打赏
  • 举报
回复
1.第一个问题使用 datagrid的表样式。
Private Function gettablestyle(ByVal tbl As DataTable) As DataGridTableStyle
Dim style1 As New DataGridTableStyle()
style1.MappingName = tbl.TableName
Dim colnumber As Integer = tbl.Columns.Count
Dim i As Integer = 0
Dim col1 As DataGridTextBoxColumn
Dim str As String = "序号,材料编号,材料封度,材料名称,单位,用料数量,欠料数量,买料数量,明细id"
Dim strcaption() As String
strcaption = str.Split(",")
While i < colnumber
col1 = New DataGridTextBoxColumn()
col1.MappingName = tbl.Columns(i).ColumnName
col1.HeaderText = strcaption(i)
col1.NullText = ""
If i = 0 Then
col1.Width = 35
End If
If i < 5 Then
col1.ReadOnly = True ‘设置该列样式关联的列不可修改。
End If
If i = 8 Then
col1.Width = 0
End If
style1.GridColumnStyles.Add(col1)
i = i + 1
End While

Return style1
End Function

2.
tbl.DefaultView.AllowNew = False 'tbl是datagrid关联的datatble
  • 打赏
  • 举报
回复
hamadou(闵峰)的可行的

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧