是什么原因导致 Visual Studio 更改控件名称?
What causes Visual Studio To Change Control Names?
在一个项目中,我的 GUI 控件的名称在编译时被更改。
比如说,我有一个名为 **lblRow0Col1 的 Label 控件。
我注意到我的代码未能按名称找到控件:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
For Each ctrl As Control In Controls ' .Find("Label*", False)
If ctrl.Name = "lblRow0Col1" Then
ctrl.Text = DateTime.Now.ToShortDateString()
End If
Next
End Sub
因此,我逐步执行了该例程,发现我需要的控件已重命名为看起来像 GUI 字符串的内容。
lbl.Name = "07178f89-6fdd-47c7-9f84-d4d661df7554"
我创建了一个测试项目来查看发生了什么,但是在测试项目中并没有发生这种情况。
是否有 VS 设置告诉编译器打乱控件名称?
如何阻止这种行为?
好的,我一直在查看填充 "details view" 屏幕的例程的代码。
以前,一旦库存项目变量发生变化,我就会填充详细信息屏幕。
我开始思考人们很少查看详细信息屏幕,那么为什么不在屏幕显示后填充它呢?我有一个“显示后”的事件,所以我把它移到了那里。
好吧,我只是把它移回去了......奇怪的行为消失了。
不过,我不知道是什么问题导致了这种情况发生。
Label 控件应该已经生成,但在选择它们所在的选项卡屏幕之前,它们就像没有生成一样。
所以,有一个答案,但我更希望有人向我解释我做错了什么。
在一个项目中,我的 GUI 控件的名称在编译时被更改。
比如说,我有一个名为 **lblRow0Col1 的 Label 控件。
我注意到我的代码未能按名称找到控件:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
For Each ctrl As Control In Controls ' .Find("Label*", False)
If ctrl.Name = "lblRow0Col1" Then
ctrl.Text = DateTime.Now.ToShortDateString()
End If
Next
End Sub
因此,我逐步执行了该例程,发现我需要的控件已重命名为看起来像 GUI 字符串的内容。
lbl.Name = "07178f89-6fdd-47c7-9f84-d4d661df7554"
我创建了一个测试项目来查看发生了什么,但是在测试项目中并没有发生这种情况。
是否有 VS 设置告诉编译器打乱控件名称?
如何阻止这种行为?
好的,我一直在查看填充 "details view" 屏幕的例程的代码。
以前,一旦库存项目变量发生变化,我就会填充详细信息屏幕。
我开始思考人们很少查看详细信息屏幕,那么为什么不在屏幕显示后填充它呢?我有一个“显示后”的事件,所以我把它移到了那里。
好吧,我只是把它移回去了......奇怪的行为消失了。
不过,我不知道是什么问题导致了这种情况发生。
Label 控件应该已经生成,但在选择它们所在的选项卡屏幕之前,它们就像没有生成一样。
所以,有一个答案,但我更希望有人向我解释我做错了什么。