小弟目前正再寫一個程式
是需要傳回textbox的值且須傳道listbox上
但是text寫入資料並不固定,在同一列資料上有長有短
所以沒辦法在listbox上一行跟下一行呈現整齊的對齊
請問這是否有什麼辦法可以解決?
2005-11-28 09:52:05 · 4 個解答 · 發問者 荷蘭仔 1 in 電腦與網際網路 ➔ 程式設計
以前寫過的 function , 給你參考
這樣便可以產生你要的固定長度.. 前面(或後面)會補足空白
Ex: List.additem FillSpace(text1.text, 10, True) 長度為10, 空白在前
Public Function FillSpace(ByVal SrcStr As String, ByVal sNum As Integer, Optional ynBefore As Boolean = False)
If Len(SrcStr) < sNum Then
If ynBefore Then
FillSpace = Space(sNum - Len(SrcStr)) & SrcStr
Else
FillSpace = SrcStr & Space(sNum - Len(SrcStr))
End If
Else
FillSpace = SrcStr
End If
End Function
2005-11-28 10:48:28 · answer #1 · answered by Brian 5 · 0⤊ 0⤋
在Text這設定MaxLength
也可在程式理設Text1.MaxLength = X
☆ X為任一數 (你想要他只能輸入幾字)
英文字母跟中文字都算一個字
2005-12-04 03:49:47 · answer #2 · answered by ? 5 · 0⤊ 0⤋
不是很確定您的需求
可否給個範例資料供大家思考...
比如 TextBox 資料長怎樣?
TextBox 資料如何截斷到 ListBox?
ListBox 是怎樣的不對齊?
2005-11-28 17:38:42 · answer #3 · answered by Anonymous · 0⤊ 0⤋
記錄List裡面文字寬度最長的值,如果新增之文字之寬度比記錄值小就前面加空白直到相同為止,反之就必須更改List內所有的值,跟新增之文字之寬度相同.
Dim N As Long '文字寬度最長的值,
Private Sub Command1_Click()
Dim S As String, S1 As String, I As Integer
S = Text1.Text
If S = "" Then Exit Sub
If Me.TextWidth(S) < N Then
Do
S = " " & S
Loop Until Me.TextWidth(S) >= N
ElseIf Me.TextWidth(S) > N Then
N = Me.TextWidth(S)
For I = 0 To List1.ListCount - 1
S1 = List1.List(I)
If Me.TextWidth(S1) < Me.TextWidth(S) Then
Do
S1 = " " & S1
Loop Until Me.TextWidth(S1) >= Me.TextWidth(S)
List1.List(I) = S1
End If
Next
End If
List1.AddItem S
End Sub
2005-11-28 13:33:12 · answer #4 · answered by W.J.S. 7 · 0⤊ 0⤋