c# - 从另一个表单中清除 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
但仍然是同样的问题。
解决方案
在您当前的代码中:
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
推荐阅读
- linux - 为什么 bash -c 'var=5 printf "$var"' 不打印 5?
- python-3.x - 为图形着色问题定义 CVXPY 变量
- python - 使用 numpy 自定义矩阵乘法
- javascript - 当我尝试发出发布请求时,它只返回创建日期和 objectID
- css - 尝试从 127 个 div 制作六边形时的一个洞
- button - 闪亮的按钮只需要一次
- php - sql连接两个不同的表
- java - 在 LinearLayout 中将左侧图像移到右侧
- c# - 用户对象的 LdapConnection Active Directory 架构信息
- r - 试图找到一种方法,即使颜色是连续的,我也可以在我的情节中使用不同的颜色