2010-12-02 16 views
1

VSEのC#でカスタムコントロールを作成しましたが、それは左側のリストに表示されます。しかし、私は私のメインフォームへの参照を渡したい、私は現在コンストラクタでそうしています。そして、私は手作業で編集しました。VSEデザイナーはフォーム自体を渡すコードを生成しました。しかし、以来、私はdesignview VSEでしようとするとエラーメッセージを表示します。これを間違った方法でやったことがありますか?カスタムコントロールで変数を渡すにはどうすればよいですか?

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()メソッドを使用することができます。

関連する問題