1个子表单从多个父表单获取属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1个子表单从多个父表单获取属性相关的知识,希望对你有一定的参考价值。

我可以从1个datagridview形式(FrmItemSearch)的2个父对象(即(FrmMasterItem)和(FrmMasterPackage))中获取查询值,并将所选值传递给其父表单我是C#的新手:)

我已经尝试过从FrmMasterItem获取数据的FrmItemSearch,它可以显示数据,但是我也想从FrmMasterPackage获取数据,所以我只需要1个gridview表单

//this is my MasterItem Form
public partial class FrmMasterItem : Form

      public string myQuery  get; set; 
      public FrmMasterItem()
      
            InitializeComponent();
      
      public void SearchItemCode_Click(object sender, EventArgs e)
      
            this.myQuery = "select * from InItemMst";

            FrmItemSearch fcd = new FrmItemSearch(this);
            fcd.ShowDialog();
      


 //this is my MasterPackage Form
  public partial class FrmMasterPackage : Form 
  
      public string sQuery  get; set; 
      public FrmMasterPackage()
      
           InitializeComponent();
      
      public void SearchItemCode_Click(object sender, EventArgs e)
      
            this.sQuery = "select * from InPackagehdr";
            //i want to get this query on FrmSearchItem

      
    

//this is my Item Search Form
public partial class FrmItemSearch : Form

      private FrmMasterItem f_mb;
      public FrmItemSearch(FrmMasterItem fmb)
      
            f_mb = fmb;
            InitializeComponent();
      

      private void FrmItemSearch_Load(object sender, EventArgs e)
      
            mysqlConnection conn = DBUtils.GetDbConnection();
            conn.Open();

            string query = this.f_mb.myQuery;//this is only MasterItem Data i want to make some selection for MasterPackage here so the Gridview can View MasterPackage data using sQuery Value from FrmMasterPackage

            MySqlDataAdapter adapter = new MySqlDataAdapter(query, conn);
            DataTable dt = new DataTable();
            adapter.Fill(dt);
            BindingSource bSource = new BindingSource();
            bSource.DataSource = dt;
            dataGridView1.DataSource = bSource;
      

答案

使用Interface定义将类(此处为Form)与另一个类相关的contract

的示例。
另一答案

只需按照下面的主表形式声明myQuery变量

另一答案

[我还可以补充一点,在您的表单中添加DAL(数据访问层)或BLL(业务逻辑层)代码是一种不好的做法?我建议为此类代码创建目录和类。

以上是关于1个子表单从多个父表单获取属性的主要内容,如果未能解决你的问题,请参考以下文章