2012-02-02 3 views
0

은 아래에있는 내 코드를 고려하시기 바랍니다. 바로 문자열PropertyGrid가 문제

의 경우에없는 기본 생성자를 가지고 기본 대화를 수정할 경우 ... 버튼, 을 수정 Item 클래스를 필요로
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     propertyGrid1.SelectedObject = Class1.Instance.StringCollection; 
    } 
} 

----------------------------------------------------------------------------- 

public sealed class Class1 
{ 
    private static Class1 _instance = new Class1(); 
    private List<string> _stringListCollection = new List<string>(); 

    public Class1() 
    { 
    } 

    public static Class1 Instance 
    { 
     get { return _instance; } 
    } 

    public List<string> StringCollection 
    { 
     get { return _stringListCollection; } 
     set { _stringListCollection = value; } 
    } 
} 
+0

코드가 올바르지 않습니다. 아마도 Class1.Instance를 속성 격자에 할당했을 것입니다. 'Class1.Instance'를 할당하고'' '''''StringCollection'의 앞부분을 누르고 Add 버튼을 누르면 언급 한 오류가 발생합니다. –

+0

제공된 코드가 두 가지 이유로 컴파일되지 않았습니다. Instance라는 클래스가 선언되지 않아 인스턴스에 지정된 유형이 없습니다. Class1을 입력해야한다고 가정합니다. 둘째, Form1이라는 이벤트 핸들러는 메소드가 그 이름을 둘러싸는 것과 같은 이름을 가질 수 없기 때문에 불법입니다. 이 코드를 Form1_Load로 변경하고 이벤트 처리기의 코드를 기반으로 Load 이벤트에 할당했습니다. – Crippledsmurf

+0

혼란에 빠진 사람들은 죄송합니다. 이것은 내 실제 코드가 아니며 의사 코드 일 가능성이 큽니다. :) – yonan2236

답변

1

당신이 PropertyGrid가 뭔가의 목록을 지정

, 그것은 하나의 행을 표시하려고

는 대신 문자열 클래스의 컬렉션을 거기에 기본 생성자 및 문자열 속성을 가진 클래스를 생성하고 할당 할 수 있습니다

또는 당신은 기본 편집기를

012을 대체 할 EditorAttribute을 사용할 수 있습니다

희망이 있습니다.

+0

음 ... 나는 다시 시도해 볼 것입니다. 아이디어를 가져 주셔서 감사합니다. – yonan2236

+0

방금 ​​깨달았어요 ...이 클래스를 정적으로 만들고 싶습니다. 인스턴스를 만들 수 없습니다. 그렇다면 생성자도 생성되지 않습니다 ... 어떻게해야합니까? – yonan2236

+0

사용자 정의 @ yonan2236으로 편집자를 무시할 수 있습니다. 편집 된 게시물 –