【发布时间】:2016-01-28 21:52:06
【问题描述】:
我在访问我的用户控件的方法时遇到问题。
我的设置如下:
我有一个名为“SearchForm”的 MainForm 和一个名为“ShowSequence”的第二个 Form(它从 SearchForm 中调用)。
ShowSequence 表单附有一个名为“SequenceList”的用户控件,上面有一个 WPF ListView。加载 ShowSequence 表单时会填充 ListView 内容。
现在,当我单击 SearchForm 中的按钮时,我想刷新 ShowSequence 表单上的 SequenceList (UserControl) 的 ListView。
因为我正在创建几个这样的 ShowSequence 表单(作为实例),所以我必须找到我需要的 ShowSequence 表单。我将通过名称识别它并调用 MyMethod():
if (System.Windows.Forms.Application.OpenForms["NameofForm"] != null)
{
(System.Windows.Forms.Application.OpenForms["NameofForm"] as ShowSequence).MyMethod();
}
所以 ShowSequence Form 上的 MyMethod 现在应该访问 SequenceList 类 (UserControl) 中名为 Refresh() 的方法,并开始刷新我的 ListView。
显示序列形式.......
public void MyMethod()
{
SequenceList.Refresh(); // error
}
这是不可能的。系统告诉我创建一个对象引用来访问 Refresh() 方法,因为它不是静态的。
所以我用了这个:
public void MyMethod()
{
SequencList SeqLi = new SequenceList();
SeqLi.Refresh();
}
但是当我这样做时,我没有更新在打开的 ShowSequence Form 实例中运行的 SequenceList.ListView。我猜是因为我创建了一个 SequenceList 的对象而不是在打开的表单上调用方法?还是我错了?
【问题讨论】:
-
感谢您编辑 SwiftArchitekt。