我需要在文本框中输入值,当我按下回车键时,我必须将文本框值保存到一个数组中。我怎样才能实现这个功能?
问问题
5741 次
4 回答
1
如果您只想在每次按下按钮时添加一个新条目,请使用以下内容:
Redim Preserve YourArray(LBound(YourArray) To UBound(YourArray) + 1)
YourArray(UBound(YourArray)) = TextBox.Text
请注意,当数组包含大量项目时,这可能会变得非常缓慢且效率低下,因为它每次都在重新分配内存。更好的方法是在块中扩展数组的大小,同时跟踪最后一个有效条目。
于 2012-07-23T13:00:19.750 回答
1
我会使用一个单独的计数器变量来重新定义数组的大小,如下所示:
Option Explicit
Dim myArr() As String '~~~ dynamic array
Dim lngCnt As Long '~~~ a counter variable that keep track of the index
' inital stage..
Private Sub Form_Load()
lngCnt = 0
End Sub
' on KeyPress
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then '~~~ if Enter Key is pressed..
ReDim Preserve myArr(lngCnt) '~~~ reclare the array with the new size, while preserving any elements it may contain
myArr(lngCnt) = Text1.Text '~~~ store the line
Text1.Text = "" '~~~ empty the textbox, so that you could type the next line
lngCnt = lngCnt + 1 '~~~ increment the counter, which we would use as size during the next keypress
End If
End Sub
' to display the elements
Private Sub Command1_Click()
Dim i As Long
For i = LBound(myArr) To UBound(myArr) '~~~ loop through the elements(from Lowerbound to Upperbound)..
Debug.Print myArr(i) '~~~ ..and display the item.
Next
End Sub
于 2012-07-23T15:41:18.670 回答
0
只需给所有文本框起相同的名称
于 2012-07-23T12:34:49.227 回答
0
简短的回答是使用split来分解字符串(您需要告诉用户使用什么字符来拆分)。
长答案不要将用户界面更改为转发器,并让他们使用每个值的输入从这里开始http://blogs.microsoft.co.il/blogs/basil/archive/2008/08/20/javascript-repeater- control-datarepeater-using-jquery-presenter-1-0-8-uicontrols-library.aspx
否则你将永远调试。
于 2012-07-23T12:37:32.477 回答