DataGrid控件.当可以对它进行修改时.如何限制某列可输入的字符数..

fm_delphi 2005-09-12 07:20:13
1. 就好象文本框可以用MaxLength属性来限制文本框中可以输入字符个数的最大限度,在使DataGrid控件时,如何限制所有行中的某一列可以输入字符个数呢?

2. 如果一个窗体可以更改其大小,当窗体比较大时而窗体里面的内容又比较少时,会有很大一块的空白处,看起来十分的不协调,我想到的解决方法是:窗体里面的控件Width和height属性按窗口Width和height属性的百分比分配大小...但是总觉得很不好,不知道大家有什么这方面的技巧没...
...全文
197 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilove8 2005-09-19
  • 打赏
  • 举报
回复
接分
winehero 2005-09-15
  • 打赏
  • 举报
回复
'该控件不是有个BeforeColUpdate事件吗?在该事件中判断输入的值,从而决定是否切换到别的单元格(cancel为0表示允许切换,否则不切换)
Private Sub DataGrid1_BeforeColUpdate(ByVal ColIndex As Integer, OldValue As Variant, Cancel As Integer)

End Sub
fm_delphi 2005-09-15
  • 打赏
  • 举报
回复
还是没人回复,是不是在DataGrid里面就不能限制啊`~~?
of123 2005-09-15
  • 打赏
  • 举报
回复
1
Dim Col As Integer
Dim limit As Integer

Private Sub DataGrid1_KeyPress(KeyAscii As Integer)
If Len(DataGrid1.Text) - Len(DataGrid1.SelText) >= limit Then KeyAscii = 0
End Sub

Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Col = DataGrid1.Col
DataGrid1.AllowUpdate = True
Select Case Col
Case 0
limit = 5 '第 1 列允许输入 5 个字符
Case 1
limit = 20 '第 2 列允许输入 5 个字符
Case Else
DataGrid1.AllowUpdate = False '其他列不允许更改
End Select
End Sub

2
我的方法是不允许调整窗体大小。
fm_delphi 2005-09-13
  • 打赏
  • 举报
回复
为什么没有回复呢?

不是吧?

743

社区成员

发帖
与我相关
我的任务
社区描述
VB 版八卦、闲侃,联络感情地盘,禁广告帖、作业帖
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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