form1有text1(index)和text2(index),现在要text1(index)和text2(index)他们以5*5排列来分页,能不能当输入完5*5以后再显示下一个5*5排列呢?请问高手给出代码。
解决方案 »
- VB winsock如何解决多个IP的链接
- VB6.0中拖动image图片的时候能否使image保持在最上层?。。
- 字符串修改
- 关于两个求随机数的问题
- VB访问ACCESS中的特定数据或者随机访问 100分 急!
- Label控件的字体不能正确显示宋体,显示的是残缺的字。
- 知道月份,如何得到本月最后一天的日期。
- 请问在编好程序后,怎样制作安装程序???
- 关于vb数据库工程的打包问题,请各位大侠指点
- 安装vb6+sp5+mdac2.7,还是找不到datareport,出现许可证未找到?
- 问个小小的问题...
- 为何文本框的keypress事件中,有的键触发(如退格键),有的键就不触发呢(如删除键del)?
text1 text2 text1 text2 text1 text2 text1 text2 text1 text2
text1 text2 text1 text2 text1 text2 text1 text2 text1 text2
text1 text2 text1 text2 text1 text2 text1 text2 text1 text2
text1 text2 text1 text2 text1 text2 text1 text2 text1 text2
text1 text2 text1 text2 text1 text2 text1 text2 text1 text2
1 [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页5*5排列
当输入完一页后,光标自动转到下一页的text1上。最好就是在没有输入完当前页,就不能看到下一页。
把所有的text都放在第二个picture2里面
用代码排列text的位置
输入完text1(index)以后控制picture2.top
就好比搬砖头:
明明告诉你可以用车子运,因为你没见过车子,你就不去关心如何去做。
你非要人来一块一块的搬,还老再想怎么再长出两只手来搬会快点。
这么个弄法不行的。当你真的了解了你现在的做法有多浪费资源后,你就
会体会到我说的了。
每一个TextBox控件其实都有各自的消息捕获函数,和图形设备以及相关
的窗口及资源的,你的想法不单是你上面说的5*5的数量,还想动态的再
生成更多的出来对应你所谓的“页”,这种方法都不知道怎么和你说,只
能说非常浪费资源,而且没必要。再者也是很不科学的。
思路对于程序员是很重要的,如果思路不好会直接影响到你做出来的东西
的稳定性、效率、可扩展性等等因素。
那就看你的数据在内存里的存储方式了。
比如一个二维数组,第一维代表页码,第二维元素存储数据。如果不喜欢用redim那就用一维数组保存数据,然后add到集合里面,add的时候加上key用来表示页码。说需要查询第几页的数据,先把当前的所有text清空(需不需要保存当前数据自己判断),根据上面所述找到那一页的数据填充到text里面
1、建立一个ACCESS库,在库中建一张临时表,表中字段与你的文本框从左到右对应。
2、form1里添加ADO控件,然后用ADO控件连接数据表。
3、form1里添加datagrid控件,鼠标右键属性,勾选允许添加、允许删除、允许更新,属性列表框里datasource选择ADODC1
4、现在运行程序,就可从datagrid往ACCESS数据库的临时表里添加记录了,添加多少行都可以。
5、你用这些数据的时候去临时表里找。
6、当你完成任务时,删除临时表里的所有记录。象SupermanKing说的:
你的编程思路的确存在问题,即使用TextBox,也不该象你想的那样设计,即浪费资源,又不好控制:我问题你几个问题:
1、5*5一页的文本框,多少页才符合你的要求,你知道吗?
2、假如有100页,你将来怎么来处理这2500个文本框里变量?你打算把这些数据放哪?
1,最多是5页,因为想到不是很多,就不想用到数据库了。
2.其实就算100页,占内存也不是很多吧,因为它们存的只是一些数字。其实我不知道一个text每个变量会给他们多少内存,如果只是按照字节数来算的话。2500*2=5m 2500*4=10m,也就是15m的内存而已。因为特殊性,数据只要保持到软件关闭就可以了。按照你说的可以。那能不能给一份代码贴出来呢?
所有的text都会填写。只要是数字就可以了
能不能,也请你给一份代码呢。
-------------------------------------------------2、假设你只有五页的话,这个功能很简单:
1)你用5个fram框,去掉caption,然后在它们上面分别摆上25个文本框,然后用frame的visual属性来隐藏来显示,就能很简单的完成你的属性。(frame1.visual=false时,此框架上的所有文本框都是不可见的)
2)当你全做好后,把它们重叠在一起
2)用label做你的翻页标识。
3)当你单击label1时,把frame1.visual=ture,其它4个全设为假,当你单击label2时,把frame2.visual=ture,另外4个设为false,这样就可以翻页,下一页,上一面,去判断当前不带[],然后就可以计算出现在该怎么翻页了。到数据填到第25按回车后,翻页,这就很简单了,你自己做吧。
Dim i As Integer
With MSFlexGrid1
For i = 0 To 24
.TextMatrix(.Tag * 25 + i + 1, 2) = Text1(i).Text
.TextMatrix(.Tag * 25 + i + 1, 3) = Text2(i).Text
Next i
.Tag = Index
blnRun = True
For i = 0 To 24
Text1(i).Text = .TextMatrix(.Tag * 25 + i + 1, 2)
Text2(i).Text = .TextMatrix(.Tag * 25 + i + 1, 3)
Next i
blnRun = False
End With
End SubPrivate Sub Form_Load()
Dim i As Integer
MSFlexGrid1.Tag = 0
For i = 1 To Command1.UBound
Command1(i).Enabled = False
Next i
End SubPrivate Sub Text1_Change(Index As Integer)
If Not blnRun Then
If Len(Text1(Index).Text) = 2 Then
Text2(Index).SetFocus
End If
End IfEnd SubPrivate Sub Text2_KeyPress(Index As Integer, KeyAscii As Integer)
Dim i As Integer If Not blnRun Then
If KeyAscii = 13 Then
Form1.Label1(Val(Text1(Index).Text) - 1).Caption = Val(Form1.Label1(Val(Text1(Index).Text) - 1).Caption) + Val(Text2(Index).Text)
If Index < 24 Then
Text1(Index + 1).SetFocus
Else
'******************************
'换页
With MSFlexGrid1
For i = 0 To 24
.TextMatrix(.Tag * 25 + i + 1, 2) = Text1(i).Text
.TextMatrix(.Tag * 25 + i + 1, 3) = Text2(i).Text
Text1(i).Text = ""
Text2(i).Text = ""
Next i
If .Tag < Command1.UBound Then
.Tag = .Tag + 1
Command1(.Tag).Enabled = True
End If
End With
'*******************************
Text1(0).SetFocus
End If
End If
End If
End Sub
你的代码测试的时候,说下标越界
.TextMatrix(.Tag * 25 + i + 1, 2) = Text1(i).Text
这段出问题。