zoukankan      html  css  js  c++  java
  • 接口多态实现窗体传递

        public interface IFillAreas
        {
            void FillAreas(string ids, string names);  //接口中定义方法签名
        }
        public partial class FrmPerson : Form,interfaces.IFillAreas     //窗体继承于接
            private void btnChoice_Click(object sender, EventArgs e)
            {
                FrmAreas frm = new FrmAreas((interfaces.IFillAreas)this);    //将窗体强转为接口类型,进行传递
                frm.ShowDialog();
            }
    
    
            public void FillAreas(string ids, string names)    //接口方法的具体实现
            {
                this.txtDistrict.Text = names;
                this.txtDistrict.Tag = ids;
            } 
            interfaces.IFillAreas Ifrm;   //定义一个接口类型
    
            public FrmAreas(interfaces.IFillAreas Ifrm)   //次窗体构造函数接受主窗体传回的接口类型的窗体
            {
                InitializeComponent();
                this.Ifrm = Ifrm;
            }
    Ifrm.FillAreas(aids.ToString().Substring(0, aids.Length - 1), anames.ToString().Substring(0, anames.Length - 1));   //调用主窗体的方法

    此方法的好处在于实现了多态,次窗体接受主窗体传回的接口类型窗体,从而只能调用接口方法,而保护了原主窗体的公有成员。

    缺点在于本质还是一个窗体,所以还是可以将接口类型窗体强转为窗体,从而调用窗体的公有成员。

  • 相关阅读:
    ASP.NET MVC IIS7 403.14-Forbidden
    SQL Server 查询锁表和接锁表
    一款不错的golang配置文件库
    某奇艺滑块
    爬虫系列
    Docker部署Python爬虫项目
    Cmder
    Selenium处理alert/confirm/prompt提示框
    Django2.0使用
    排序
  • 原文地址:https://www.cnblogs.com/ianism/p/4245813.html
Copyright © 2011-2022 走看看