-
您是否在窗體上有乙個包含十個 text1(1) text1(10) 和乙個 text2 的文字框控制項陣列,然後您需要在 text2 中輸入 5,因此 text1(6) 和 text1(10) 的可見性變為 false?
只需要進行一次更改。
將 if text1 > i 替換為 。
if text1(i).文字<那麼如果 text1>i 在這裡,那麼您的原始程式應該是問題所在。
你要比較的是 text1 控制陣列的內容,那麼你必須指定索引號,否則與陣列名稱進行比較是沒有意義的,迴圈中的 i 應該依次表示陣列的索引號,而不是你需要比較的內容大小,你應該和 text2 的內容進行比較才有意義。
-
您需要使用此程式執行的操作應該是隱藏 text2 中數字下方的所有陣列。
但是您的程式中存在兩個問題:
1. if text1 > i then
text1 這裡是乙個陣列,所以如果直接執行會出錯,應該根據你的理解改成 text2;
2.改為:如果 text2 > i 那麼當結果不正確時,當輸入 2 和 2 以上的數字時,text1(10) 會被隱藏,這是因為,你的程式是和 i 比較的,而不是 val (,注意這是乙個字串,比較不匹配 i,就好像 i 也被轉換到字串中進行比較一樣。
所以"2"大於"10"完成。
-
最好讓控制項陣列是文字,然後你先在表單上放乙個text1,名字可以改,隨便什麼,但是你需要把它的索引屬性修改為0(當然其他數字也可以,但建議用0),這是你的文字陣列的第乙個控制項。
在程式內部,使用 load 方法直接呼叫第二個和第三個,..
例如,載入 text1(1)。
text1(1).left=10
text1(1).top=20
text1(1).text="測試新增控制項"
text1(1).visible=true,以便您可以看到第二個控制項。
你試試。
-
應執行此操作:將啟動的控制項的 index 屬性設定為 0,將稍後建立的控制項的名稱更改為與上乙個控制項的名稱相同,並將其 index 屬性設定為 1。
-
點選“否”後是否有可能不彈出提示?。。。為什麼我只是複製並貼上它,它就會重新出現......
-
樓上應該很親切。
dima()
asstring
redima(len(
asstring
fori=0
tolen(
a(i)=mid(,i+1,1)
接下來補充:不知道你是不是用vb除錯,是不是忘了加控制項了?,我在知道的答案肯定是先除錯再回答,如果還是不行,你就把下面***中間的***複製到乙個文字檔案中重新命名,加乙個()列印出來**
version
beginform1
caption
form1"
clientheight
clientleft=60
clienttop
clientwidth
linktopic
form1"
scaleheight
scalewidth
startupposition=3
該視窗是預設視窗。 begin
text1height
lefttabindex=1
text"text1"top=
widthendbegin
command1
caption
command1"
height
lefttabindex=0
top=360width
endend
attribute
vb_name
form1"
attribute
vb_globalnamespace
falseattribute
vb_creatable
falseattribute
vb_predeclaredid
trueattribute
vb_exposed
falseprivate
subcommand1_click()
dima()
asstring
redima(len(
asstring
fori=0
tolen(
a(i)mid(,i+
nextfori=0
toubound(a)
printa(i)
nextendsub
-
同意二樓的說法,什麼人一樓。
-
首先新增乙個。
標籤,在屬性中將索引設定為 0
新增壓力機。
將 ** 新增到內部按鈕。
I = 1 至 2 的容量
load label1(i)
label1(i).left = label1(i - 1).left + label1(i - 1).width + 100
label1(i).visible = truenext
-
第一種是QW623577789方法。
第二個,有乙個。
改變內部零件方向的方法解決了容量問題。
dim lbl(5) as
for i = 0 to 5
set lbl(i) = "", "mylabel" & i)with lbl(i)
top = 100 + i * 1000.caption = i
visible = true
end with
next
-
例如,將多個文字框轉換為與要為其賦值的陣列相對應的小部件陣列要容易得多(假設文字框陣列名為 text1,陣列為 a())。
for i = 0 to ubound(a)text1(i).text = a(i)
next如果文字框不是小部件陣列,那就比較麻煩了,必須乙個乙個地賦值。 如果文字框的名稱是常規的,例如 text1、text2、text3 ......而且數字是連續的,所以可以是這樣的(這是一種非常規的用法):
for i = 0 to ubound(a)controls("text" & i + 1).text = a(i)
NEXT強烈建議盡可能多地使用一系列控制項,因為它不僅執行速度更快,而且可以節省系統資源。
-
private sub form_load()dim i as integer
for i = 1 to 3
load text1(i) '載入控制陣列 text1(i)。left = text1(i - 1).lefttext1(i).
top = text1(i - 1).top + 500
text1(i).visible = true '讓它顯示下乙個 i
end sub
private sub form_unload(cancel as integer) '
dim i as integer
for i = 1 to
unload text1(i) '下次退出時解除安裝控制項陣列
end sub
-
相同型別的小組件必須屬於同一型別才能形成小組件陣列,例如兩個文字框或兩個列表框,如果讓文字框和列表框形成陣列,則會報告錯誤。
-
不知道你想要哪乙個 1 或 2?
1,private sub label1_click(index as integer)
text1(index).visible = trueend sub
2,private sub label1_click(index as integer)
dim i as integer
for i = 0 to
text1(i).visible = falsenext i
text1(index).visible = trueend sub