ActiveX控件属性不起作用(C#)

时间:2013-05-24 19:33:15

标签: c# .net activex

我有一个C#ActiveX控件,其界面定义类似于:

int MyInt { get; set; }
string MyString { get; set; }
Color MyColor { get; set; }

接口实现如下:

protected int myInternalInt;
protected string myInternalString;
protected Color myInternalColor;
public int MyInt { get { return myInternalInt; } set { myInternalInt = value; } }
public string MyString { get { return myInternalString; } set { myInternalString = value; } }
public Color MyColor { get { return myInternalColor; } set { myInternalColor = value; } }

int和string属性(以及我尝试过的其他基本类型)按预期工作,但Color类型没有。控件的属性页正确解释类型并填充下拉列表以选择Color类型。但是,它不显示Color-type属性的当前内部值(显示黑色,即默认值),也不会传回用户所做的任何更改。如果myInternalColor在上面显式初始化,例如“protected Color myInternalColor = Color.Blue;”,则同样如此。

任何人都可以了解如何使Color属性正常工作,即正确地将其值传入和传出控件吗?

++++++++++++++++++++++++++++++++

现在我觉得上面提到的问题可能是COM Interop问题。事实证明,VS2008开发环境中的UserControl TestContainer似乎正确地与Color属性交互,但VS6提供的ActiveX控件测试容器却没有。控件设计用于运行的实际容器是基于COM的,我打赌上述Ax测试容器也是如此。

(并且对用户控件开发不熟悉,看起来我无法理解我正在开发的WinForm控件在技术上不是ActiveX控件,这是我通过最近的研究才知道的区别。)< / p>

0 个答案:

没有答案