自定义属性几点疑问

问题描述

我为控件自定义了一个属性,类型是QQFormSkin:publicclassQQFormSkin{publicColorBackColor=Color.FromArgb(0,192,192);publicdoubleOpacity=1.0;publicImageBackImage=null;publicstringBackImageFile;}定义属性:privateQQFormSkin_fskin;[Description("设置窗体皮肤"),EditorBrowsable(EditorBrowsableState.Always),DesignerSerializationVisibility(DesignerSerializationVisibility.Content)][DefaultValue(typeof(QQFormSkin),"")]publicQQFormSkinFormSkin{get{returnthis._fskin;}set{if(value!=_fskin){_fskin=value;this.Opacity=this._fskin.Opacity;}}}我有两点疑问,试了很久,解决不了,还请高手们帮忙给解答下:1.如何让控件的属性框内显示FormSkin属性,其属性(内含BackColor,Opacity,BackImage,BackImageFile)是可以展开的,并且可以赋值。2.我将这个控件一个实例的FormSkin属性直接传递给这个控件的第二个实例,并且只传递这个属性,在另第二个实例里修改第二个实例的FormSkin属性时,如何实时动态传递给第一个实例的Opacity属性。因为修改第二个实例的FormSkin属性时,和第一个实例的FormSkin是引用关系,第一个实例的FormSkin属性的值会变掉,但因为不能实时调用FormSkin的Set方法,因此就不能执行this.Opacity=this._fskin.Opacity;。不知大家有解决方案或更好的办法吗?非常感谢!

解决方案

解决方案二:
自定义控件没有Opacity属性,this.Opacity=this._fskin.Opacity;

这句编译都通不过不知道LZ是怎么定义这个属性的
解决方案三:
参照TypeConverter的使用自己百度吧。。而<GDI+程序设计>一书中就有
解决方案四:
属性和成员用法一样,定义是不一样的.
解决方案五:
通过事件让实例1知道值改了,然后让实例1自己赋值。具体方法:在实例2中定义一个事件,在实例1中绑定事件,在引发事件的时候就能够调用实例1中赋值的方法
解决方案六:
我是在自定义窗体,所以有Opacity属性,因为一些原因,不过这个属性被我用newOpacity覆盖掉了。

时间: 2024-10-03 12:54:37

自定义属性几点疑问的相关文章

Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)

很多的时候,系统自带的View满足不了我们功能的需求,那么我们就需要自己来自定义一个能满足我们需求的View,自定义View我们需要先继承View,添加类的构造方法,重写父类View的一些方法,例如onDraw,为了我们自定义的View在一个项目中能够重用,有时候我们需要自定义其属性,举个很简单的例子,我在项目中的多个界面使用我自定义的View,每个界面该自定义View的颜色都不相同,这时候如果没有自定义属性,那我们是不是需要构建不同颜色的View出来呢,这样子我们的代码就会显得很沉厄,所以这时

jQuery Easyui Tabs扩展根据自定义属性打开页签_jquery

easyui是一个轻量级的后台管理系统框架,各种组件均有,使用简单方便,现在已经有免费版的License了. 1.增加扩展 <script type="text/javascript" > /** * @author {kexb} easyui-tab扩展根据id切换页面 */ $.extend($.fn.tabs.methods, { getTabById: function (jq, id) { var tabs = $.data(jq[0], 'tabs').tabs

dreaweaver-关于网页边框使用的问题,新手有疑问

问题描述 关于网页边框使用的问题,新手有疑问 右下边框mp3,视频,图片--这个内嵌表格为什么不是在左上角开始,而是跑中间去了-求解 解决方案 td默认就是水平居中的,你要居上给td添加valign="top" <td width="760" valign="top"> 解决方案二: 新手使用python常见问题 解决方案三: 给table或者td写样式啊,实在不行就打开开发者工具看看居中的那个块元素在哪个位置.然后根据实际情况去加样

java中++a和a++ 在数组实现栈中的小疑问

问题描述 java中++a和a++ 在数组实现栈中的小疑问 package 数组实现栈; public class StackArray implements Stack { public static final int num = 1024;//数组默认容量 public int capacity;//数组实际容量 public Object s[];//对象数组 public int top = -1;//栈顶元素位置 //构建默认容量栈对象 public StackArray() { t

软件测试-linux代码覆盖率测试工具gcov的一些疑问?

问题描述 linux代码覆盖率测试工具gcov的一些疑问? 鄙人是做软件测试的,最近在使用gcov来检查代码覆盖率,我已经成功生成了一份关于touchscreen测试代码的gcov文件,但是领导说这不是他想要的...所以我想请教一下大家:1. 如果我想测试平台上的touchscreen模块,那么目的肯定是这样:首先我要看下我写的测试code是否存在多余的根本跑不到的代码,如果有,那我肯定要优化我的测试代码:其次,我肯定也要看我写的代码在linux kernel里面的覆盖情况,如果我写的测试代码在

php-ecshop获取端口的疑问

问题描述 ecshop获取端口的疑问 if (isset($_SERVER['SERVER_PORT'])) { $port = ':' . $_SERVER['SERVER_PORT']; if ((':80' == $port && 'http://' == $protocol) || (':443' == $port && ' https://' == $protocol)) { $port = ''; } } 其中 if ((':80' == $port &

汇编语言-汇编MOV的一点疑问!!!

问题描述 汇编MOV的一点疑问!!! DATA SEGMENT USE16 MES1 DB 'Please input:',0AH,0DH,'$' SD DB ? DATA ENDS 然后 MOV AH,1 INT 21H MOV SD,AL 然后就对SD进行操作了 想问下MOV的目的操作数可以是变量(SD)吗??不是只能是寄存器和存储器吗? 解决方案 MOV AH,1 INT 21H 是自动转入中断子程序的入口 通过上面两条指令,会把输入或者读取的字符放到AL中,所以是MOV SD,AL 解决

jvm-java锁竞争检测的疑问

问题描述 java锁竞争检测的疑问 看优化的书,上面提到现在JVM对锁进行了优化,有锁竞争,JVM底层先是自旋,再调用底层操作系统的锁,然后现在用看主动上下文切换,和被动上线文切换的差/NCPU*80000/频率 看是否大于百分之5,来判断是否有锁.上下文切换知道是多线程的运行导致,但是不明白主动上下切换,和被动上下文的切换的区别,以及这个公式有为什么这么来?希望懂的大牛解释下哈

openwrt luci-关于刚学习luci 界面修改时的疑问

问题描述 关于刚学习luci 界面修改时的疑问 1.通过cbi,将界面中的值修改后,会将其自动保存到相应的config中,其中的ui方式的实现方式,基本的工作流程是怎么样的? 比如说,我不想保存到etc/config下的配置文件中,想要保存到其他文件中具体该怎么做 2.entry 第一个参数path 的第三项或者之后几项的具体作用是什么, 比如说第三个参数如果我定义为"" 则无法形成我创建的界面,那我随便定义一个值,就能出现我的界面,那是否说第三个参数的值可以随我们定义,没有多大作用,