C# 通过ListView ItemActivate更改标签文本

C# 通过ListView ItemActivate更改标签文本,c#,winforms,listview,label,C#,Winforms,Listview,Label,我有两个表单:一个是主表单,另一个是只有一个listview的表单,用户可以在其中进行选择。通过双击激活listview项目后,我希望主窗体上有一个标签来显示已激活项目的文本。这是我的代码(不工作);为什么这是错误的?谢谢 主要形式: public partial class MainForm : Form { public MainForm() { InitializeComponent(); } /* for populating the p

我有两个表单:一个是主表单,另一个是只有一个listview的表单,用户可以在其中进行选择。通过双击激活listview项目后,我希望主窗体上有一个标签来显示已激活项目的文本。这是我的代码(不工作);为什么这是错误的?谢谢

主要形式:

public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();
    }

    /* for populating the process list when the user clicks display process button */
    private void DisplayProcessButton_Click(object sender, EventArgs e)
    {
        Process_List plopen = new Process_List();
        plopen.Show();

        Process[] process = Process.GetProcesses();
        foreach (Process prs in process) 
        {
            plopen.listView1.Items.Add(prs.ProcessName);
        } 
    }
第二种形式:

private void listView1_ItemActivate(object sender, EventArgs e)
{
    MainForm mf = new MainForm();
    mf.label1.Text = e.ToString();
    Close();
}

这是你应该做的!在你的第二张表格上,这样做

public MainForm parentForm;
public void SecondForm(MainForm form)
{
    InitializeComponent();
    parentForm = form;
}
而且

private void listView1_ItemActivate(object sender, EventArgs e)
{
    parentForm.label1.Text = e.ToString();
}
然后以你的主要形式

public SecondForm secondform;
public void MainForm()
{
    InitializeComponent();
    secondform = new SecondForm(this);
}
当你打开你的第二张表格时,无论你想在哪里使用它

secondform.Show();

通过这样做,您可以在表单之间来回传输信息。我一直在我的每一张表格上使用这个。它非常有用!如果你有任何问题,请告诉我

以下是您应该做的!在你的第二张表格上,这样做

public MainForm parentForm;
public void SecondForm(MainForm form)
{
    InitializeComponent();
    parentForm = form;
}
而且

private void listView1_ItemActivate(object sender, EventArgs e)
{
    parentForm.label1.Text = e.ToString();
}
然后以你的主要形式

public SecondForm secondform;
public void MainForm()
{
    InitializeComponent();
    secondform = new SecondForm(this);
}
当你打开你的第二张表格时,无论你想在哪里使用它

secondform.Show();

通过这样做,您可以在表单之间来回传输信息。我一直在我的每一张表格上使用这个。它非常有用!如果你有任何问题,请告诉我

你注意到你做了一个新的主窗体了吗?这不是你现在在屏幕上看到的。我如何引用我的主窗体?当我尝试时,我无法做到。请参阅我的新编辑可能会在主窗体侦听的第二个窗体上创建一个事件,并且在您拥有的lisView1_ItemActivate方法中,您可以引发自定义事件,传递值。请检查此项,谢谢您的回复seminda,但我真的不明白我在读什么。我想我比我想象的更新手!你注意到你做了一个新的主窗体了吗?这不是你现在在屏幕上看到的。我如何引用我的主窗体?当我尝试时,我无法做到。请参阅我的新编辑可能会在主窗体侦听的第二个窗体上创建一个事件,并且在您拥有的lisView1_ItemActivate方法中,您可以引发自定义事件,传递值。请检查此项,谢谢您的回复seminda,但我真的不明白我在读什么。我想我比我想象的更新手!这成功了!我不是100%确定这是为什么,因为我来自Python和Java,但是我觉得我开始掌握它了。C-land是个疯狂的地方。谢谢你,兰登!你才是真正的MVP,没问题!这只是我做事的惯常方式!我想我会把它传给更多像你这样有麻烦的人!除非有特殊原因,否则我不会不这样做而创建表单!这成功了!我不是100%确定这是为什么,因为我来自Python和Java,但是我觉得我开始掌握它了。C-land是个疯狂的地方。谢谢你,兰登!你才是真正的MVP,没问题!这只是我做事的惯常方式!我想我会把它传给更多像你这样有麻烦的人!除非有特殊原因,否则我不会不这样做而创建表单!