问题如下:我用Windows Froms Control Library工程继承UserControl类,然后编写了一个自定义类型的属性,问题是为什么我的属性值修改不 了呢?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime;
using System.Runtime.InteropServices;
namespace PropertyTest
{
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
[Category("自定义属性")]
[Description("这个是用来进来进行属性测试的")]
[Browsable(true)]
[TypeConverter(typeof(ExpandableObjectConverter))]
public class ChartValue
{
public ChartValue(int inX, int inY)
{
x = inX;
y = inY;
}
public int X
{
set
{
x = value;
}
get
{
return x;
}
}
public int Y
{
set
{
y = value;
}
get
{
return y;
}
}
private int x;
private int y;
}
private ChartValue stChangeValue;
public ChartValue ChangeValue
{
set
{
stChangeValue = value;
}
get
{
return stChangeValue;
}
}
}
}

跪求高手帮忙指导一下,急!!!感谢!!!
------解决思路----------------------
你用 ILSpy 看看 Location是怎么定义的
------解决思路----------------------
那个属性是空的吧, 你的构造方法又要带参数, 不知道是不是这个原因.
也许需要写一个 TypeConvert 专门来进行 ChartValue 与 string 的互相转换.
------解决思路----------------------
要定义一个converter
------解决思路----------------------
需要加个转换器,将第三方类型转化为可识别的string
------解决思路----------------------
http://blog.csdn.net/aqimide/article/details/6161470
------解决思路----------------------
这个属性是一个自定义的类型,不是系统基本类型,手动输入的什么数据需要有相应格式去匹配才行吧。
------解决思路----------------------
这个完全解答题主问题。
------解决思路----------------------
你的只要展开,不用ConvertFrom ConvertTo的,应该不需要将字符转成对象吧
internal class StyleTypeConverter : TypeConverter
{
public override bool GetPropertiesSupported(ITypeDescriptorContext context)
{
return true;
}
}
//然后在你的属性上指定下就行了
[TypeConverter(typeof(StyleTypeConverter))]
public MyStyle Style
{
get { return _style; }
set { _style = value; }
}