我想在C#中更新此列表框。这是我在C#中的第一个程序,不完全确定事情是如何工作的。listbox更新#2
public partial class progHider : Form
{
String[] processList;
public progHider()
{
InitializeComponent();
}
private void progHider_Load(object sender, EventArgs e)
{
List.Items.AddRange(getList());
}
private String[] getList()
{
Process[] processlist = Process.GetProcesses();
processList = new String[Process.GetProcesses().Length];
int index = 0;
foreach (Process process in processlist)
{
if (!String.IsNullOrEmpty(process.MainWindowTitle))
{
processList[index] = process.MainWindowTitle;
index++;
}
}
return processList;
}
private void btnrefresh_Click(object sender, EventArgs e)
{
List.DataSource = null;
this.Update();
}
所以刷新按钮是假设通过调用getList()更新列表框,但我不知道如何完成它。在Java中,您只需调用该方法并执行repaint()。我试过这个.refresh/update,没用。 一个问题是如何更新Listbox?我无法弄清楚如何完成它。
我是否正在做这个权利?应该List.Items.AddRange(getList());在progHider_Load方法中? 另一个问题是,private void progHider_Load(object sender,EventArgs e)如何工作?它只用过一次吗?你可以打电话吗? 另外,Main方法在哪里?我使用的是Visual Studio 2010的Windows应用程序模式,它只显示了部分类的代码。
谢谢。有效!但你会如何做不同? – J13t0u 2012-07-17 01:32:29
@ J13t0u:我添加了一个可能的方法的例子,根据我对自己想要做的事情的有限了解。使用'BindingList'可以在列表更改时自动更新。此外,拉出名单人口的逻辑有助于遵循单一责任原则(又称分离担忧)。 –
2012-07-17 02:17:23