我在访问Usercontrol的方法时遇到问题。
我的设置如下:
我有一个名为" SearchForm"第二个表格名为" ShowSequence" (它从SearchForm调用。)
ShowSequence表单有一个名为" SequenceList"的UserControl。附上一个WPF ListView就可以了。加载ShowSequence表单时将填充ListView内容。
现在当我单击SearchForm中的一个按钮时,我想在ShowSequence表单上刷新我的SequenceList(UserControl)的ListView。
因为我创建了几个ShowSequence Forms(作为实例),我将不得不找到我需要的ShowSequence Form。我将通过名称识别它并调用MyMethod():
if (System.Windows.Forms.Application.OpenForms["NameofForm"] != null)
{
(System.Windows.Forms.Application.OpenForms["NameofForm"] as ShowSequence).MyMethod();
}
因此,ShowSequence表单上的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的对象而不是在打开的Form上调用Method?或者我错了吗?
答案 0 :(得分:0)
好的,我找到了解决方案。
我必须使用在创建时在SequenceView中创建的(UserControl)SeuquenceList对象。
这就是诀窍:))