2012-03-12 28 views
0

こんにちは私はフォームでの参照となるボタン付きのユーザーコントロールを持つテストアプリケーションを作成しています。ユーザーコントロールでインターフェイス関数を実装する方法

enter image description here

私はちょうど私にだけインターフェイス機能を実装する必要が ように、ユーザーコントロールボタン1クリックイベント

public partial class UserControl1 : UserControl 
{ 
    public UserControl1() 
    { 
     InitializeComponent(); 

    } 
    private void button1_Click(object sender, EventArgs e) 
    { 
     //CALL ICRUD.Test() execute when click on form1 and then show I am Clicked 
    } 
} 

にインターフェース

public interface ICRUD 
    { 
     void Test(); 
    } 

をバインドすることが可能ですform1。

をForm1:よろしくで

using System.Windows.Forms; 
namespace TEST 
{ 
    public partial class Form1 : Form , ICRUD 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     public void Test() 
     { 
      MessageBox.Show("I am Clicked"); 
     } 
    } 
} 

感謝。

+0

同じ質問を何回削除して再利用する予定ですか? –

+0

ICRUD型のユーザーコントロールにプロパティを設定し、このプロパティをフォームから設定することができます。 –

+0

@ M.BabcockはFAQをありがとう。これは私の最後の質問です。私はサンプル画像を添付して私の質問をよりきれいにしてくれました。:) – BizApps

答えて

0

これは私にとっては正しいことではありません。このインターフェイスを実装するのはおそらくFormではありません。さらに、インターフェイスは何も持ちません。

しかし、あなたは本当にあなたが、the ParentForm propertyにアクセスするあなたのインターフェースにキャストしてからメソッドを呼び出すことができ、それを行うにしたい場合:

private void button1_Click(object sender, EventArgs e) 
{ 
    var crud = (ICrud)ParentForm; 
    crud.Test(); 
} 

また、.NETの大会は、少なくとも(略語を書くことです長いもの)は他の言葉と同じですので、あなたのインターフェースの名前はICrudとする必要があります。

+0

うわー!ありがとう@ svick..its完璧.. – BizApps

0
private void button1_Click(object sender, EventArgs e) 
{ 
    for(var parent = this.Parent; parent != null; parent = parent.Parent) 
    { 
     var crud = parent as ICRUD; 
     if (crud != null) 
     { 
     crud.Test(); 
     break; 
     } 
    } 
} 
関連する問題