2010-12-02 2 views
1

Я создал пользовательский элемент управления на C# в VSE, и он отображается в списке слева. Но я хочу передать ссылку на мою основную форму, и сейчас я делаю это в конструкторе. И затем я вручную отредактировал, VSE Designer сгенерировал код для прохождения по самой форме. Но в дальнейшем, когда я пытаюсь с дизайном, VSE показывает ошибку. Я сделал это неправильно?Как передать переменную в пользовательском элементе управления?

class canvas : Control 
{ 

    public canvas(Form1 theForm) 
    { 

    } 
} 

А потом в конструкторе сгенерированный код:

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

ответ

2

вы могли бы просто использовать общественную собственность.

public Form1 mainForm { get; set; } 

Затем вы можете передать его в качестве параметра на вашем холсте.

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

Или из кода:

this.canvas2.mainForm = this; 
0

Возможно, вместо того, чтобы передать форму через конструктор вашего контроля, вы можете использовать FindForm() метод элемента управления для того, чтобы получить форму, в которой был размещен контроль ,