高分!!!请高手进来求一功能实现!
我想实现如下一个效果:
我在一个程序中无法知道 一个 button 它的属性是如何设置的。
我利用反射获取到了它的属性网格显示出来后,我可以对它进行设置和修改了。
在此时我想实现的一个效果就是,把反射后我对这个button 所做的修改完全的保存下来,下次我打开程序的时候我说看到的就是
新设置的这个button。 我不保存的情况下 button自动的还原层原始状态。
不知道这个功能是否能实现?如果可以实现如何实现,最少能把实现思路说下~~~~~~
[解决办法]
可以将用户的设置保存在你的配置文件中,这样下次打开的时候再应用回去就可以了。
配置文件的格式示例如下:
<userPerference> <controls> <control id="button"> <properties> <property name="ForeColor" value="Red" /> <property name="Size" value="100,40" /> <properties> </control> </controls></userPerference>
[解决办法]
Tolgahan's Form Property Saver
https://secure.codeproject.com/KB/cs/TolgahanFormPropertySaver.aspx?fid=459883&df=90&mpp=25&noise=3&sort=Position&view=Quick
[解决办法]
或者把属性值写进 INI文件里也可以
using System.Runtime.InteropServices;[DllImport("kernel32")]//写入INI文件 private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); [DllImport("kernel32")]//读取INI文件 private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal,int size, string filePath);
[解决办法]
建一个Map分别对应该Button的属性和设置值
既然有了反射的使用 那一切变得方便了
如果单机程序就把map设置为静态的
这样随时可以调用 如果不是单机就把它放到页面的主界面去,设置一个值就增加一个map元素,
然后每次打开界面用map来遍历需要恢复状态button,将属性一一还原
在这里我建议一下 其实大多数的button可用属性并不多且多为true,false类型
楼主不如建立几种状态的button同时覆盖,然后根据状态判断是哪个让他visable为true显示出来就好