怎么获得PropertyGrid所连接的对象名称啊?
Dim a As New Class1
Dim b As New Class2
PropertyGrid1.SelectedObject = a
以上是在propertygrid1中连接了对象实例a。
如果不知道propertygrid1中连接的对象实例的名称,即不知道连接的是a还是b。该怎么办尼?采用
msgbox(PropertyGrid1.SelectedObject.tostring)显示的是Class1
[解决办法]
if (PropertyGrid1.SelectedObject == a)
...
else
...
注意,局部变量名是给编译器标识用的。编译的源代码并不存在。
所以你看到如下源代码:
int i, j;
可能编译后再反编译的程序就成了
int num1, num2;
也就是编译器不关心这个变量叫什么,它只关心程序中叫这个名字的变量都是同一个。
[解决办法]
可以用一个字典来表示对应关系。
Dim dict As New Dictionary(Of String, Of Object)
Dim a As New Class1
dict.Add("a", a)
Dim b As New Class2
dict.Add("b", b)
...
Dim objname As String = dict.Where(Function(x) PropertyGrid1.SelectedObject = x.Value).First().Key