首页 > 解决方案 > 从另一个表单中清除 ListBox

问题描述

我一直坚持这一点,不知道我在这里做错了什么。我正在尝试通过一个按钮ListBox从另一个清除一个。Form

在我的主要Form地方,ListBox我有这个功能:

public void test()
{
    this.DeviceList.Items.Clear();
}

在另一个Form我有我的按钮的地方,我有:

Form1 mainform = new Form1();
mainform.test();

但是当我按下按钮时没有任何反应。现在,如果我切换this.DeviceList.Items.Clear();MessageBox.Show("test");那个工作就好了。但如果我使用的是this.DeviceList.Items.Clear();.

我尝试使用没有this但仍然是同样的问题。

标签: c#.netwinformsfunctionlistbox

解决方案


在您当前的代码中:

Form1 mainform = new Form1();
mainform.test();

您创建一个表单不是 Show它,而是清除它的DeviceList. 您应该找出一个现有的表格,例如:

using System.Linq;

...

var mainform  = Application
  .OpenForms
  .OfType<Form1>()     //TODO: put the right type if required
  .LastOrDefault();    // if you have several intances, let's take the last one

if (mainform  != null) // if MainForm instance has been found...
  mainform .test();    // ... we clear its DeviceList

推荐阅读