簡體   English   中英

從父窗體調用用戶控件的方法

[英]Calling a method of a user control from parent form

我在訪問用戶控件的方法時遇到問題。

我的設置如下:

我有一個名為“ SearchForm”的MainForm和另一個名為“ ShowSequence”的表單(從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窗體上的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? 還是我錯了?

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

我必須使用在創建時在SequenceView中創建的(UserControl)SeuquenceList對象。

這就是把戲:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM