2010-07-29 28 views
2

我有3種形式,一種是frmMain - 主窗體,二是frmUserType- childform,最後是frmCreateUserType。在主窗體中我有一個菜單項來打開我的frmUserType,在這個窗體中我有一個按鈕來打開另一個窗體,這是我的frmCreateUserType,在這個窗體中我有一個按鈕來添加記錄,然後更新frmUserType中的列表視圖。問題是listview將無法使用frmCreateUserType中的添加按鈕控件訪問。我儘量不使用的MdiParent聲明我frmMain和frmUserType兒童和它的作品,所以這意味着問題出我frmUserType爲childform?我使用vb.net 2008childform中的listview

任何建議將不勝感激

Thans提前

代碼以打開我的第二個表(frmUserType)

Dim frmChildUserType As New frmUserType 
frmChildUserType.MdiParent = Me 
frmChildUserType.WindowState = FormWindowState.Maximized 
frmChildUserType.Show() 

代碼爲我添加按鈕,在frmUserType

更新列表視圖
frmUserType.lsvUserType.Items.Clear() 
FillListViewUserType("SELECT * FROM pr_user_type", frmUserType.lsvUserType) 

回答

1

你正在創建一個新的實例爲:

Dim frmChildUserType As New frmUserType 

但在你的代碼:

frmUserType.lsvUserType.Items.Clear() 
FillListViewUserType("SELECT * FROM pr_user_type", frmUserType.lsvUserType) 

你不能訪問該實例而是使用的默認實例frmUserType。所以我認爲你正在更新ListView的不同實例。

如果你改變你的代碼,改爲是:

frmChildUserType.lsvUserType.Items.Clear() 
FillListViewUserType("SELECT * FROM pr_user_type", frmChildUserType.lsvUserType) 

我想你想到它會工作。

如果你不知道什麼默認實例是,你可以找到他們的博客here(我認爲他們是一個壞主意)。

+0

hi ho1 我無法使用frmChildUserType,因爲我處於另一種形式。這個以主窗體創建的新實例。 tnx – tirso 2010-08-02 06:55:44

+0

@tirso:您必須以某種方式將frmChildUserType引用傳遞給新窗體。 – 2010-08-02 07:40:28