Как передать переменную в пользовательском элементе управления? - PullRequest
1 голос
/ 02 декабря 2010

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

class canvas : Control
 {

     public canvas(Form1 theForm)
     {

     }
 }

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

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

Ответы [ 2 ]

2 голосов
/ 02 декабря 2010

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

public Form1 mainForm { get; set; }

Затем вы можете передать его в качестве параметра объекта Canvas.

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

Или из кода:

this.canvas2.mainForm = this;
0 голосов
/ 02 декабря 2010

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

...