我在vb2010中創建了一個需要大量文本框的應用程序。將每個文本框重命名爲具有唯一標識符是非常耗時的。例如,將TextBox1重命名爲txtName1是一個漫長的過程,當它們有很多時。在vb2010中命名文本框
有沒有什麼方法可以加快速度,給用戶提供一個唯一的ID號碼?或者它只是一個犁過每個問題的問題?
我在vb2010中創建了一個需要大量文本框的應用程序。將每個文本框重命名爲具有唯一標識符是非常耗時的。例如,將TextBox1重命名爲txtName1是一個漫長的過程,當它們有很多時。在vb2010中命名文本框
有沒有什麼方法可以加快速度,給用戶提供一個唯一的ID號碼?或者它只是一個犁過每個問題的問題?
試試看:現在我正在編輯個人電腦的前臺;)考慮上面的回答說的確很好。無論如何,這裏有一些事情要知道。當您在Excel工作表中添加文本框或任何其他控件時,它將變爲圖像所示的Embedded
類型。
如果你真的想有意義的名稱必須考慮到工作表中的形狀文本框,在這裏是做一個辦法:
Option Explicit
Sub reNameMeaningfully()
Dim shp As Shape
Dim arrNames As Variant
Dim i As Integer
arrNames = WorksheetFunction.Transpose(Sheets(1).Range("D2:D7").Value)
'-- assuming that you have exact number of names for the exact number of controls
For i = LBound(arrNames) To UBound(arrNames)
Set shp = Sheets(1).Shapes(i)
'-- we can't check Type here. So we check if default-name begins with Text
If shp.Name Like "Text*" Then
shp.Name = arrNames(i)
End If
Next i
End Sub
輸出:
如果這些tecboxes處於Form
那就試試這個:您可以使用相同的邏輯來把所有的名字在一個範圍,然後通過迭代;)
Dim Cont as Control
Dim i as integer
i = 1
For Each Cont In Me.Controls
If TypeName(Cont) = "TextBox" Then
Cont.name = "txt" & i '-- Rename
End If
Next Cont
總是試圖分配一個有意義的名字到控制。如果你遵循這種方法,你會發現計算機無法幫助,所以需要手動完成。在你的情況,它是如何知道TextBox1
需要識別name
?
txtName1
不是控制任何一個好名字,因爲一)它不告訴)開發商的名字是和b什麼1
?這是否意味着名字的第一部分,即名字?或列表中第一個人的姓名?除非您有其他考慮因素,例如保持控件名稱儘可能短,匹配數據庫字段名稱或其他原因,否則適當的名稱將類似txtCustomerFirstName
或txtFirstCustomerFullName
(對於a)和b))。
來源:我開發了一個超過1000個文本框的保險管理企業級應用程序,目前是它的主要支持聯繫人。根據我的經驗,控制的命名是而不是你大部分時間都花在這裏。作爲一個方面說明,如果你通過設計器手動重命名一個控件,它也會重命名代碼中的所有用法。它大大減少了需要完成的工作。
您可以在視覺工作室中使用** Find **/**替換** :) – Saju
如果您有** Notepad ++ **,這將會容易得多。記事本++有一個正則表達式(正則表達式)查找/替換功能。 – Saju