码迷,mamicode.com
首页 > 其他好文 > 详细

一个控制皮肤组织的控制

时间:2020-08-11 10:44:06      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:其他   数组   tran   key   web   setvalue   外观   大量   nload   

介绍 你可能会问,什么是皮肤控制?皮肤控件是可以快速更改许多其他控件属性的控件。例如,在应用程序中,您希望能够拥有绿色配色方案、蓝色配色方案等。通过使用此控件,可以指定属性(通过名称或内置)以及要将属性设置为什么。快速、简单,并节省大量代码。这就是…… 它是如何工作的 这段代码如何工作。其实很简单。包括两个方法来改变一些常见的属性,如名称,背景色,前面板,等等。除此之外,你还可以说你只需要改变某些类型,比如只改变按钮类型控件的前面板颜色。但是如果您想要更改自定义控件的属性呢?还是没有提供?这就是反射的作用。 在运行时,我不显式地知道给定对象的类型。所以我必须使用反射来获得它,像这样: 隐藏,复制Code

Dim objType As Type = ctrl.GetType()

这会创建一个对象objType。objType的类型是ctrl控件的类型。然后,我们可以得到我们想要的财产,给它一个名字。 隐藏,复制Code

Dim propInfo As PropertyInfo = objType.GetProperty(PropertyName)

这将获取该对象的PropertyInfo。通过传入我们想要更改的属性的名称,我们可以获取或设置属性。剩下的就是改变属性了。 隐藏,复制Code

propInfo.SetValue(ctrl, val, Nothing)

ctrl是我们想要更改其属性的控件。val是新的值。在数组的情况下,索引使用Nothing (null)。我只是把它拼凑在一起,所以我没有添加修改它的功能。如果有足够的需求,我可以。 但等等,这里有个陷阱… 为了更改控件的属性,必须将其通过ByRef(erence)传递给皮肤控件。这意味着外观控件仍然持有引用,因此该控件不能被GC清除。调用RemoveControl方法将删除对控件的引用。仅此而已。希望这能教会你一些关于反思的知识。 本文转载于:http://www.diyabc.com/frontweb/news12354.html

一个控制皮肤组织的控制

标签:其他   数组   tran   key   web   setvalue   外观   大量   nload   

原文地址:https://www.cnblogs.com/Dincat/p/13474023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!