2010-12-02 7 views
1

VSE의 C#에서 사용자 지정 컨트롤을 만들었으며 왼쪽의 목록에 나타납니다. 하지만 내 기본 폼에 대한 참조를 전달하려면, 나는 현재 생성자에서 그렇게하고있다. 그런 다음 VSE Designer에서 수동으로 편집 한 코드가 양식 자체를 전달합니다. 그러나 이후에 내가 designview와 함께하려고 할 때 VSE는 errormessage를 보여준다. 내가 잘못 했니?사용자 정의 컨트롤에서 변수를 전달하는 방법은 무엇입니까?

this.canvas2 = new panel2.canvas(this); 

답변

2

방금 ​​공용 속성을 사용할 수

class canvas : Control 
{ 

    public canvas(Form1 theForm) 
    { 

    } 
} 

는 그리고 디자이너에서 코드를 생성합니다.

public Form1 mainForm { get; set; } 

그런 다음 캔버스 개체의 매개 변수로 전달할 수 있습니다.

<canvas mainForm='<%= this %>'></canvas> 

또는 코드에서

: 아마

this.canvas2.mainForm = this; 
0

, 대신 컨트롤의 생성자를 통해 양식을 전달하는, 당신은 컨트롤이 배치되어있는 형태를 얻기 위해 컨트롤의 FindForm() 방법을 사용할 수 있습니다 .

관련 문제