English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

小弟目前正再寫一個程式
是需要傳回textbox的值且須傳道listbox上
但是text寫入資料並不固定,在同一列資料上有長有短
所以沒辦法在listbox上一行跟下一行呈現整齊的對齊
請問這是否有什麼辦法可以解決?

2005-11-28 09:52:05 · 4 個解答 · 發問者 荷蘭仔 1 in 電腦與網際網路 程式設計

4 個解答

以前寫過的 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

fedest.com, questions and answers