用一个全局类public Class,把Add()、Delete()、Update()加进去,每次调用时判断当前窗口,或传进参数。
using System;
using System.Collections;namespace Covis
{
public class SysInfo
{

public SysInfo()
{}
public static bool Add()
{
return true;
}

public static bool Delete()
{
return true;
}
public static bool Update()
{
return true;
}
}
}

解决方案 »

  1.   

    用接口可以实现,建议用接口实现。
    1.定义一接口IOperation
    2.在接口中定义Add()、Delete()、Update()
    3.frmStudent、frmTeacher直接实现接口IOperation的Add()、Delete()、Update()方法
    4.根据编辑窗口实例化接口:如IOperation opera = new frmStudent()
    5.单击工具栏上 增加、删除、修改 三按钮的时对应于:opera.Add();opera.Delete();opera.Update()
    6.over
      

  2.   

    还有一种比较简单的方法,用数据绑定,在实现数据增加,删除,修改或者查询时只用绑定的方法如下:
    protected void DoNew()
    {
    try 
    {
    // 清除当前编辑内容
    this.myBind.EndCurrentEdit();
    myBind.AddNew();
    }
    catch (System.Exception eEndEdit) 
    {
    System.Windows.Forms.MessageBox.Show("新建数据失败原因:"+eEndEdit.Message);
    }
    }protected void DoDelete()
    {
    DialogResult r = MessageBox.Show ( "是否删除当前记录!" , "删除当前记录!" , MessageBoxButtons.YesNo , MessageBoxIcon.Question ) ;
    if (DialogResult.Yes ==r)
    {
    if ((myBind.Count > 0)) 
    {
    myBind.RemoveAt(myBind.Position);
    }
    }
    那么要你其它的窗口只要把绑定设好,它就会对相应的绑定做增加,删除,修改动作,不用管其它的

    }
      

  3.   

    谢谢大家的支持,我现把完整的解决方案列表如下:
    一、MID窗口工具栏上有 增加、删除、修改 三按钮对就菜事件单委托如下
    private void EditCard(object sender, System.EventArgs e)
    {
    if (this.ActiveMdiChild != null)
    {
    System.Windows.Forms.MenuItem mnuitm = new System.Windows.Forms.MenuItem();
    frmDataBind frmNewDataBind = new frmDataBind();//我的数据绑定类 mnuitm = (System.Windows.Forms.MenuItem)sender;
    frmNewDataBind = (frmDataBind)this.ActiveMdiChild;
                      //调用数据绑定类的对应方法
    switch (mnuitm.Text)   //下次改tag属性,适应国际化
    {
    case "增加(&A)":
    frmNewDataBind.AddNew();
    break;
    case "修改(&M)":
    frmNewDataBind.Modify();
    break;
    case "删除(&D)":
    frmNewDataBind.Delete();
    break;
    }
    }}二、我的数据绑定类frmDataBind
    1、定义两个对象
    IOperation iopt;                    //数据操作接口,供三个方法使用
    private Form m_frmOperationEditCard; //数据操作窗口,实现属性过程
    2、增加三个方法供外部调用,如下:
    /// <summary>
    /// 增加
    /// </summary>
    public void AddNew()
    {
    //iopt.IsAddNew = true;
    //iopt.IsChangedData = false;
    iopt.AddNew();
    } /// <summary>
    /// 删除
    /// </summary>
    public void Delete()
    {
    //iopt.IsAddNew = false;
    //iopt.IsChangedData = false;
    iopt.Delete();
    } /// <summary>
    /// 修改
    /// </summary>
    public void Modify()
    {
    //iopt.IsAddNew = false;
    //iopt.IsChangedData = false;
    iopt.Modify();
    }3、支持数据绑定实例化frmDataBind时的属性,用
    frmDataBind1.EditCardForm = new 编辑窗口();
    其中编辑窗口()类重写了接口的三个方法
    属性如下:
    /// <summary>
    /// 数据操作窗口,它有操作的接口
    /// </summary>
    public Form EditCardForm {
    set
    {
    this.m_frmOperationEditCard = value;
    this.iopt = (IOperation)value;
    }
    get
    {
    return this.m_frmOperationEditCard;
    }
    }三、数据绑定//在窗口网格中显示满足给定SQL的记录
    private void DataBinding(object sender, System.EventArgs e)
    {
             string strSQL;            //定义显示数据的SQL语句
             string strFormCaption;    //窗口标题 System.Windows.Forms.MenuItem mnuitm = new System.Windows.Forms.MenuItem(); mnuitm = (System.Windows.Forms.MenuItem)sender;         //frmDataBind 是我写的一个类,只要传DataSource就可显示数据信息
    frmDataBind frmNew = new frmDataBind(); switch (mnuitm.Text)
    { case "学生表":
    strSQL = "SELECT * FROM 学生表";
    strFormCaption = "学生花名册";
                        frmNew.EditCardForm = new 学生表编辑窗口();
    break;
    case "教师表":
    strSQL = "SELECT * FROM 教师表";
    strFormCaption = "教师花名册";
                        frmNew.EditCardForm = new 教师表编辑窗口() ;
    break;
    } frmNew.DataSource = strSQL ;
    frmNew.Text = strFormCaption ;
    frmNew.MdiParent = this;
    frmNew.Show();
    }四、定义接口,包括三个方法
    using System;namespace Zfy
    {
    /// <summary>
    /// 接口IOperation定义数据编辑窗口的行为Add()、Delete()、Update()
    /// </summary>
    public interface IOperation
    {
    int AddNew();
    int Delete();
    int Modify();
    /*
    bool IsAddNew
    {
    set;
    get;
    } bool IsChangedData
    {
    set;
    get;
    } string ID
    {
    set;
    get;
    }
    */
    }
    }
    五、定义"学生表编辑窗口"、"教师表编辑窗口"
    这只不再说明具体实现,只说明它们继承于以上是我的实践且成功运行,有更好的方法或建议希望大家email
    [email protected]
    再次感谢大家!!!