C# 如何在用户控件中实现接口功能

C# 如何在用户控件中实现接口功能,c#,winforms,user-controls,C#,Winforms,User Controls,嗨,我正在创建一个测试应用程序,它有一个带有按钮的用户控件,该按钮将在表单中引用 可以绑定接口吗 public interface ICRUD { void Test(); } 要查看用户控件按钮1,请单击事件 public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); }

嗨,我正在创建一个测试应用程序,它有一个带有按钮的用户控件,该按钮将在表单中引用

可以绑定接口吗

 public interface ICRUD
    {
        void Test();
    } 
要查看用户控件按钮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
    }
}
所以 我只需要实现form1的接口函数

表格1:

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

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

谢谢你的关心。

我觉得这不合适。可能不是
表单
应该实现这个接口。更重要的是,界面没有带来任何东西

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;
      }
    } 
} 
但如果您确实想这样做,您可以访问,将其转换到您的接口,然后调用该方法:

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

此外,.Net中的惯例是编写与其他单词相同的缩写(至少是长缩写),因此您应该命名您的接口
ICrud

您计划删除并重新询问同一问题多少次?您可以在用户控件中拥有ICrud类型的属性,并从表单中设置此属性。@M.Babcock谢谢您的常见问题解答。这是我的最后一个问题,先生。我附上了样本图片,使我的问题更加清晰:)请,以后。你没有太多的代表,系统会自动锁定代表性低的帐户和大量已删除的问题。