c# 控件拖放到form上,有些属性(如颜色,字体)可以从下拉框中选择,很方便。
我现在做一个自定义控件,有很多图片资源名称需要选择。
如果我的属性类型做成枚举的话,可以实现。但是这样我需要维护一个枚举类型,
如果增加或删除资源,就得修改枚举,很是麻烦。
请教:如何才能将资源名称在窗体设计时可以通过控件属性选择?

解决方案 »

  1.   

    Color - KnownColor
    LZ 看Color结构体和KnownColor枚举就知道了
      

  2.   

    在控件开发的时候使用从传入的参数(如图片),这样就OK了.
    比如控件的背景图通过传入一个bitmap参数来加载.
      

  3.   

    下面这段代码可使属性显示在控件属性中: 
    private float DataMax = 60;
            [Browsable(true), Category("图形属性"), Description("最大值")]
            public float setDataMax
            {
                get
                {
                    return DataMax;
                }
                set
                {
                    DataMax = value;
                    //测试用户控件使用
                }
            }
      

  4.   

    public enum ChartTitleStyle
            {
                TopLeft = 0,//置顶居左
                TopCenter = 1,//置顶居中
                TopRight = 2,//置顶居右
            }
            private ChartTitleStyle PTitleStyle = ChartTitleStyle.TopCenter;
            [Browsable(true), Category("图形属性"), Description("图表标题位置")]   //在“属性”窗口中显示TitleStyle属性        public ChartTitleStyle TitleStyle
            {
                get 
                { 
                    return PTitleStyle; 
                }
                set
                {
                    PTitleStyle = value;
                }
            }
      

  5.   

    好像目前只能用枚举解决你的问题的方法也许有 两个1 c#代码自动生成工具。
      如果你需要经常修改,或有大量这种代码需要生成,可以考虑写一个程序自动生成C#代码。如果两少的话还是算了。2 研究c#的运行模式,自己写一个兼容枚举的结构。这种方法应该可以最终解决你的问题。但是目前可能还没有人知道该如何做。我也在研究。
      

  6.   

    可以自己写一个Editor,在Editor中检索资源文件。可以查查MSDN 设计时支持。不过写设计器容易把VS搞死,自己小心