【发布时间】:2016-07-20 09:20:51
【问题描述】:
它不是重复的,至少我不这么认为。
我有一个带有listbox(应用程序列表)的主窗体,我想用不同的按钮做不同的事情。
我想要一个包含不同实例的公共类来简化我的代码。
问题是我无法从此类访问我的列表框。而且我不能按照通常的方式“Form1 form = new Form1();”,我希望我的主窗体继续做其他事情。
这是我的代码的一部分,可以让您了解:
public class Getwindow
{
public string Check { get; set; }
public void Checkwindow()
{ foreach (string App in Form1.ListBox1) //doesn't work
//it says Form1 does not contain a definition for "ListBox1"
{if (App.Contains(Check)
{return true;}
}
public void maxwindow()
{ //otherscode here }
}
在我的 MainForm 上:
public partial class Form1 : Form
{
GetWindows App1 = new GetWindows();
GetWindows App2 = new GetWindows();
public string Check { get; set; }
private void Form1_Load(object sender, EventArgs e)
{ App1.Check = nameofapp1
App2.Check = nameofapp2
[...]
}
private void Checkapp1_Click(object sender, EventArgs e)
{
App1.checkwindow();
}
private void Getapp()
{//void to get all app opens and put it on the listbox}
}
我真的无法从form 获得价值。我试图将所有方法放在我的主窗体中并执行Form1 App1 = new Form1() 之类的操作,但在某些方法上出现异常错误(虽然不知道为什么)。但我更愿意在课堂上打电话给我的listbox。
谢谢。
【问题讨论】:
-
您是否尝试过在您的
GetWindows()方法中接受ListBox类型作为参数(例如GetWindows(ListBox sender) { ... })?然后,当您从表单调用它时,您可以将ListBox(从表单本身)传递给该方法。这将允许您访问实际表单的ListBox1 -
您的
GetWindows()方法实际用于什么目的?您希望如何处理来自ListBox1的数据? -
是的,这确实很聪明。我在 c# 上很新。我会点那个!! Listbox1 Data 是 windows 上打开的应用程序的列表,getwindow 帮助我动态打开它们(我发送点击和键盘快捷键)