在设计时无法在PropertyGrid中分配组件的属性

时间:2019-01-22 04:31:40

标签: c# .net winforms propertygrid design-time

场景很简单。

我创建了WindowsFormsApp项目(名为WindowsFormsApp2),并添加了DataSet来为我的Access文件创建强类型的数据集。

我在数据集中添加了一个表,Visual Studio生成了以下类;

public class WindowsFormsApp2.DataSet1TableAdapters.TableAdapterManager : System.ComponentModel.Component

现在我要创建自己的课程

using System;
using System.ComponentModel;

namespace WindowsFormsApp2
{
    public class MyComponent : Component
    {
        DataSet1TableAdapters.TableAdapterManager tableAdapterManager;

        public DataSet1TableAdapters.TableAdapterManager TableAdapterManager
        {
            get
            {
                return tableAdapterManager;
            }
            set
            {
                tableAdapterManager = value;
            }
        }

    }
}

因此,基本上我想做的是能够在设计时在TableAdapterManager上将组件的属性分配给Form1的实例。

重建解决方案后,MyComponent在工具箱中可见,我将其添加到表单中。但是,当我尝试在属性网格中设置组件的属性时,值列表为空,并且需要tableAdapterManager1进入列表。

enter image description here

所以我的问题是我该怎么做才能使tableAdapterManager1对象在值列表中可见?

1 个答案:

答案 0 :(得分:0)

好吧,在尝试了一些实验之后,我能够解决其中一个问题。

我创建了单独的ClassLibrary(名为WindowsFormsApp2.Data),并将数据集和我的类移入了其中。在主项目中,我引用了类库。

enter image description here

现在,我将对象重新添加到Form1上,一切都进行得很好。

enter image description here

Studio的这种行为对我来说似乎很奇怪,我是否应该接受它的错误?到目前为止,我还不确定。我将期待新的见解。