如何转移在C#中的窗口形式的对象 [英] How to Transferring objects between windows forms in c#

查看:75
本文介绍了如何转移在C#中的窗口形式的对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到了form.When形式加载的ListView加载与企业人事对象的窗口一个ListView。我想这样做时,在ListView中一些用户双击,会从该ListView.SelectedItem属性的企业人事对象,并打开一个新的形式,这个对象转移到新开的形式。

这是我的codeS加载企业人事对象的ListView:

 公共静态无效GETALL(ListView控件列表)
{
    list.Items.Clear();
    使用(FirebirdEntityz上下文=新FirebirdEntityz())
    {
        的ObjectQuery<企业人事>查询= context.PERSONEL;
        的foreach(查询VAR项)
        {
            VAR mylist中=新的ListViewItem的{text = item.NAME};
            mylist.SubItems.Add(item.SURNAME);
            mylist.Tag =项目;
            list.Items.Add(mylist中);
        }
    }
}

私人无效Form1_Load的(对象发件人,EventArgs的)
{
    GETALL(ListView1的);
}
 

这是我对转移企业人事对象:

 私人无效listView1_SelectedIndexChanged(对象发件人,EventArgs的)
{
    企业人事企业人事=(企业人事)listView1.SelectedItems [0] .TAG;
}
 

解决方案

在新的形式,将被打开,在表单类中添加一个新的属性;

 私人人员人事{获得;组;}
公共ShowPersonnel(人事_personnel){
   this.Personnel = _personnel;
   //做任何你想在这里
}
 

在主窗体;

 私人无效listView1_SelectedIndexChanged(对象发件人,EventArgs的){
        人事人才= listView1.SelectedItems [0] .TAG的人员;
        窗体2窗口2 =新的窗体2();
        form2.ShowPersonnel(人员);
        form2.Show();

}
 

可能包括错别字。更改人员企业人事。

i got a ListView in the windows form.When form loads ListView loading with personel objects. I want to do when some user double clicks on ListView , gets the personel object from the ListView.SelectedItem property and open a new form and transfer this object to newly opened form.

here is my codes for loading personel objects to ListView:

public static void GetAll(ListView list)
{
    list.Items.Clear();
    using (FirebirdEntityz context = new FirebirdEntityz())
    {
        ObjectQuery<PERSONEL> query = context.PERSONEL;
        foreach (var item in query)
        {
            var mylist = new ListViewItem { Text = item.NAME };
            mylist.SubItems.Add(item.SURNAME);
            mylist.Tag = item;
            list.Items.Add(mylist);
        }
    }
}

private void Form1_Load(object sender, EventArgs e)
{                     
    GetAll(listView1);
}

This is my personel object for transfer:

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
    PERSONEL personel = (PERSONEL)listView1.SelectedItems[0].Tag;
}

解决方案

In the new form that will be opened, add a new property in the form class;

private PERSONNEL Personnel{get; set;}
public ShowPersonnel(PERSONNEL _personnel){
   this.Personnel = _personnel;
   //do whatever you want here
}

In the main form;

private void listView1_SelectedIndexChanged(object sender, EventArgs e){
        PERSONNEL personnel = listView1.SelectedItems[0].Tag as PERSONNEL;
        Form2 form2 = new Form2();
        form2.ShowPersonnel(personnel);
        form2.Show();

}

May include typos. Change PERSONNEL to PERSONEL.

这篇关于如何转移在C#中的窗口形式的对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆