문제

나는 정렬된 여러 공용 속성입니다.이러한 특성을 자동으로 표시의 속성에서 창의 VS2005 디자이너에서"기타"카테고리입니다.를 제외하고 두 개의 속성이 있는 열거를 표시하지 않습니다.

에서 첫 번째 사용하여 다음과 같은 enum:

public enum VerticalControlAlign
{
    Center,
    Top,
    Bottom
}

이에 표시되지 않은 디자이너 다.

두 번째 사용하는 이 enum:

public enum AutoSizeMode
{
    None,
    KeepInControl
}

이 하나 보여줍니다 하지만,디자이너라고 생각하시는 것 같아 bool 고 진실하고 거짓입니다.고 할 때 당신을 구축 프로젝트 컨트롤을 사용하여 그것은 말할 수 없는 변환 bool 형식을 AutoSizeMode.

또한,이러한 열거형은 선언 globably 네임스페이스,그래서 액세스할 수 있다.

어떤 아이디어가?

도움이 되었습니까?

해결책

우선,두 번째 열거,AutoSizeMode 에서 선언한 시스템입니다.Windows.Forms.그래서 일으킬 수 있는 디자이너에 몇 가지 문제입니다.

둘째,당신이 찾을 수 있습니다 다음 페이지에 MSDN 유용합니다:

http://msdn.microsoft.com/en-us/library/tk67c2t8.aspx

다른 팁

내가 만든 작은 테스트를 당신의 문제는(나는 확실하지 않다면 내가 그것을 이해 올바르게),그리고 이러한 특성을 나타에서 올바르게 디자이너,그리고 모든 열거는 다음과 같다.이것이 무엇을 찾고 있는지,그 설명해 주시기 바랍니다.

지 않을 얻을 끊 _Ugly 부분에 던져있다.나는 그냥 그것을 사용에 대한 빠른 시험입니다.

using System.ComponentModel;
using System.Windows.Forms;

namespace SampleApplication
{
    public partial class CustomUserControl : UserControl
    {
        public CustomUserControl()
        {
            InitializeComponent();
        }

        /// <summary>
        /// We're hiding AutoSizeMode in UserControl here.
        /// </summary>
        public new enum AutoSizeMode { None, KeepInControl }
        public enum VerticalControlAlign { Center, Top, Bottom }

        /// <summary>
        /// Note that you cannot have a property  
        /// called VerticalControlAlign if it is   
        /// already defined in the scope.
        /// </summary>
        [DisplayName("VerticalControlAlign")]
        [Category("stackoverflow.com")]
        [Description("Sets the vertical control align")]
        public VerticalControlAlign VerticalControlAlign_Ugly
        {
            get { return m_align; }
            set { m_align = value; }
        }
        private VerticalControlAlign m_align;        

        /// <summary>
        /// Note that you cannot have a property  
        /// called AutoSizeMode if it is   
        /// already defined in the scope.
        /// </summary>
        [DisplayName("AutoSizeMode")]
        [Category("stackoverflow.com")]
        [Description("Sets the auto size mode")]
        public AutoSizeMode AutoSizeMode_Ugly
        {
            get { return m_autoSize; }
            set { m_autoSize = value; }
        }
        private AutoSizeMode m_autoSize;    
    }
}

당신이 필요하지 않습의 열거 글로벌기 위해서는 그들이 볼 수 있도록에서 디자이너입니다.

을 명확히하십시오:

  1. 를 추가하는 경우 다른 값을 AutoSizeMode 열거,그것은 여전히 나타나는 부울로?
  2. 는 경우(대신에)당신은 당신의 이름을 변경 enum,그것은 여전히 나타나는 부울로?

방법을 시도해 보십시오(디자이너 이 모드에서 VS2005 견에 약간 벗겨지기):

  1. 웹.config 및 추: batch="false" 귀하의 <compilation> 태그입니다.
  2. 도 설정을 기본적으로 열거형:

    public enum VerticalControlAlign
    {
        Center = 0,
        Top = 1,
        Bottom = 2
    }
    
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top