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个子表单从多个父表单获取属性的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 选项卡式表单多个 OnCurrent 触发

从 React 中的同一个选择下拉表单字段中获取多个值

从多个子组件获取数据到父组件

将表单选择中的多个属性设置为状态

jsp name属性相同的多个input-text表单如何获取值?高分!在线急等,半小时给最佳答案

如何提交多个具有相同name属性的表单