winforms 将对象从一个Winform转移到另一个C#

rmbxnbpk  于 2023-11-21  发布在  C#
关注(0)|答案(1)|浏览(172)

我有个很有趣的问题...
我有一个Form,在它上面有一个datagridview。从这个datagrid中,我选择一个对象(在我的例子中是一种药物),当我点击“Create reciep”按钮时,我调用另一个名为“New Recipet”的**Form*,它会粘在那个表单datagrid上。
现在的问题是,我想在一个“会话”中传输更多对象,就像在一个收据表单上传输更多项目一样。
下面是FORM1上的代码

private void btnIzdavanjeRacuna_Click(object sender, EventArgs e)
{
   hzzoLijekovi selektiraniLijek = hzzoLijekoviBindingSource.Current as hzzoLijekovi;
   if (selektiraniLijek != null)
   {
      using (var db = new appotekaDBEntities())
      {
         var lijekApoteka = (from l in db.lijekovi
                             where l.serijskiBroj == selektiraniLijek.serijskiBroj
                             select l).SingleOrDefault();

         if (lijekApoteka == null)
         {
            MessageBox.Show("Lijek ne postoji u bazi", "Upozorenje");
         }
         else if (lijekApoteka.kolicina == 0)
         {
            MessageBox.Show("Lijek ne postoji trenutno na zalihi", "Upozorenje");
         }
         else
         {
            FormRacuniNovi noviRacunForma = new FormRacuniNovi(lijekApoteka);
            noviRacunForma.Show();
         }
      }
   }
}

字符串
对不起,这是克罗地亚语,但你应该明白的逻辑。所以.一切都适用于对项目或对象
在另一种形式”我有

private lijekovi lijekNaRacun;
public FormRacuniNovi (lijekovi lnr)
{
   InitializeComponent();
   lijekNaRacun = lnr;
}

private void FormRacuniNovi_Load(object sender, EventArgs e)
{
   lijekoviBindingSource.DataSource = lijekNaRacun;
}


我想我可能应该转移一个绑定列表,但让我们说,我想转移一个接一个的项目,因为否则它的复杂(我有一些其他的查询之前,我得到的数据网格,我想转移的FORM1)
我该如何解决这个问题?
在第二个FORM上,或者说我想在数据网格中有多个项目的表单上,我可能应该有一个bindinglist,但是在传输**.SIngleOrDefault()**对象时,我有一个转换问题.

7dl7o3gd

7dl7o3gd1#

我认为这是必须的;
像这样更改新Recipet表单的构造函数:

Form1 frm;
public New_Recipet(Form1 sender)
{
    frm= sender;
}

字符串
在Form1.cs上创建一个函数:

public void CreateRec(string argThatYouNeed,string anOtherArgThatYouNeed)
{
    //Do Whatever You Want With Args
}


在Recipet表单中的提交按钮上:

frm.CreateRec(arg1,arg2);

相关问题