将对象从一个Winform传输到另一个C#

时间:2014-06-17 22:24:09

标签: c# winforms entity-framework-5

我有一个非常有趣的问题......

我有一个表单,我有一个datagridview。从这个数据网格我选择一个对象(在我的情况下是一个药物),当我按下按钮"创建收据"我打电话给我的另一个表单,名为" New Recipet"并且它坚持使用那个表格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();
         }
      }
   }
}

抱歉,它的克罗地亚语,但你应该理解逻辑。所以...一切都适用于项目或对象

另一张FORM"我有

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

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

我想我应该转移一个绑定列表,但是我想要逐个传输一个项目,因为否则它会变得复杂(在我到达数据网格之前我还有一些其他查询我要在FORM1上传输)

我该如何解决这个问题?

在第二个FORM,或者我希望在datagrid中有多个项目的表单上,我应该有一个绑定列表,但是在转移 .SIngleOrDefault()时我遇到转换问题对象...

1 个答案:

答案 0 :(得分:0)

我认为必须这样做;

更改新的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);