Vb.net 在vb2010中命名文本框

Vb.net 在vb2010中命名文本框,vb.net,Vb.net,我正在vb2010中创建一个需要很多文本框的应用程序。事实证明,将每个文本框重命名为具有唯一标识符非常耗时。例如,将TextBox1重命名为txtName1是一个漫长的过程,因为其中有很多 是否有任何方法可以加快这一进程,以提供一个具有唯一ID号的用户友好名称?或者这仅仅是一个对每一个都进行深入研究的问题?试试看:现在我在电脑前编辑;)考虑上面的答案是很好的。无论如何,这里有一些事情要知道。当您在Excel工作表中添加文本框或任何其他控件时,它将成为嵌入的类型,如图所示 如果您确实希望为工作

我正在vb2010中创建一个需要很多文本框的应用程序。事实证明,将每个文本框重命名为具有唯一标识符非常耗时。例如,将TextBox1重命名为txtName1是一个漫长的过程,因为其中有很多


是否有任何方法可以加快这一进程,以提供一个具有唯一ID号的用户友好名称?或者这仅仅是一个对每一个都进行深入研究的问题?

试试看:现在我在电脑前编辑;)考虑上面的答案是很好的。无论如何,这里有一些事情要知道。当您在Excel工作表中添加文本框或任何其他控件时,它将成为嵌入的
类型,如图所示

如果您确实希望为工作表中的形状文本框指定有意义的名称,以下是一种方法:

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
输出:

如果那些Tecbox是
形式的
,那么试试这个:您可以使用相同的逻辑将所有名称放在一个范围内,然后遍历该范围;)


尝试:编辑,因为我现在在电脑前;)考虑上面的答案是很好的。无论如何,这里有一些事情要知道。当您在Excel工作表中添加文本框或任何其他控件时,它将成为嵌入的
类型,如图所示

如果您确实希望为工作表中的形状文本框指定有意义的名称,以下是一种方法:

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
输出:

如果那些Tecbox是
形式的
,那么试试这个:您可以使用相同的逻辑将所有名称放在一个范围内,然后遍历该范围;)


始终尝试为控件指定有意义的名称。若你们遵循这种方法,你们会发现计算机无法帮助你们,所以它需要手动完成。在您的情况下,它如何知道
TextBox1
需要识别
名称

txtName1
对于控件来说也不是一个好名字,因为a)它不会告诉开发人员那是谁的名字,b)什么是
1
?它是指名字的第一部分,即名字吗?或者名单上第一个人的名字?专有名称类似于
txtCustomerFirstName
txtFirstCustomerFullName
(分别用于a)b)),除非您有其他注意事项,例如保持控件名称尽可能短、匹配数据库字段名称或其他原因

来源:我开发了一个用于保险管理的企业级应用程序,其中包含1000多个文本框,目前是解决任何问题的主要支持联系人。根据我的经验,控件的命名并不是您花费大部分时间的地方


作为旁注,如果您通过设计器手动重命名控件,它也会重命名其在代码中的所有用法。它大大减少了需要完成的工作。

始终尝试为控件指定一个有意义的名称。若你们遵循这种方法,你们会发现计算机无法帮助你们,所以它需要手动完成。在您的情况下,它如何知道
TextBox1
需要识别
名称

txtName1
对于控件来说也不是一个好名字,因为a)它不会告诉开发人员那是谁的名字,b)什么是
1
?它是指名字的第一部分,即名字吗?或者名单上第一个人的名字?专有名称类似于
txtCustomerFirstName
txtFirstCustomerFullName
(分别用于a)b)),除非您有其他注意事项,例如保持控件名称尽可能短、匹配数据库字段名称或其他原因

来源:我开发了一个用于保险管理的企业级应用程序,其中包含1000多个文本框,目前是解决任何问题的主要支持联系人。根据我的经验,控件的命名并不是您花费大部分时间的地方


作为旁注,如果您通过设计器手动重命名控件,它也会重命名其在代码中的所有用法。它大大减少了需要完成的工作。

您可以在visual studio中使用“查找/替换:”)如果您有记事本+,这将更容易。Notepad++有一个正则表达式(regex)查找/替换功能。您可以在visual studio中使用查找/替换:)如果您有Notepad++这将更容易。记事本++有一个正则表达式(regex)查找/替换功能。@Trevor检查:)但对于第一个代码,您需要输入正确的语法。@Trevor
txt1
是一个示例,还有更经典的方法;)如前所述,建议您也看看其他答案。无论如何,我只是更新了一个更好的解决方案。@Trevor检查:)但对于第一个代码,您需要输入正确的语法。@Trevor
txt1
是一个示例,还有更经典的方法;)如前所述,建议您也看看其他答案。无论如何,我只是更新了一个更好的解决方案。要指定一个有意义的名称,您仍然可以在Excel vba中以编程方式执行;-)@我不认为OP是在问Excel。关于WinForms的答案,我认为OP是询问设计时名称的更改,而不是在运行时。最终目标是简化项目导航并生成更易于维护的代码。我发布的只是两个解决方案,它们可以为表单或工作表中的x个控件指定唯一的名称。。。哪种设计模式。另外,为什么有人要在运行时更改控件名称?若要指定有意义的名称,您仍然可以在Excel vba中以编程方式执行;-)@我不认为OP是在问Excel。关于WinForms的答案,我认为OP是询问设计时名称的更改,而不是在运行时。最终目标是简化项目导航并生成更易于维护的代码