从父表单

时间:2016-01-28 21:52:06

标签: c# wpf winforms listview

我在访问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?或者我错了吗?

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。

我必须使用在创建时在SequenceView中创建的(UserControl)SeuquenceList对象。

这就是诀窍:))