2013-01-19 86 views
0

在我的项目中,我有一个mdi容器mdiMother与两个childform(mdiChild1和mdiChild2)mdiChild1具有listview(模式查看细节)mdiChild2有一个按钮,其目标是填充listview,mdiChild1从子窗体填充到另一个子窗体

我已经做了一些代码的和平。我将这段代码复制到mdiChild1,创建一个按钮,尝试它,它的工作(意思是:我看到listview填充)

我的问题:
当我按下按钮从mdiChild2,我listview不具有相同的代码填充在mdiChild1代码做的工作。

+0

您需要在任何人都可以帮助您之前添加正在工作而不工作的代码。 –

+0

请向我们显示您的代码。你怎么实际填充'ListView'?你如何从'mdiChild2'访问'mdiChild1'中的'ListView'控件? –

+0

@ odyss-jii看看那里https://gist.github.com/c6cbcf30dbb355ec9636 – Yeurl

回答

0

您必须从mdiMother控制孩子的控制。

从每个mdiChild创建static实例,之后当您想要从它们中的每一个调用方法时,您必须使用这些static实例。

像这样:

public class mdiMother{ 
    public static mdiChild1 ch1; 
    public static mdiChild2 ch2; 

    public mdiMother(){ 
     ch1 = new mdiChild1(); 
     ch2 = new mdiChild2(); 
    } 
} 

public class mdiChild1{ 
    public void Do(){ 
     // fill list 
    } 
} 

public class mdiChild2{ 
    public void CallMdiChild1(){ 
     mdiMother.ch1.Do(); 
    } 
} 
+0

好吧,我明白了。所以我没有这样做:没有向mdiMother声明静态。我只是声明静态实例并使用它。我的问题依然如此。一些和平的代码:public void addItemToDownload(string item) { ListViewItem theItem = new ListViewItem(item); theItem.SubItems.Add(“en attente”); listDownload.Items.AddRange(new ListViewItem [] {theItem}); } – Yeurl

+0

是我要求填充listview的代码...我在这种形式中添加了一个buton,该方法起作用。当我从mdiChild2通过来自mdiMother的静态实例调用它时...不工作...出了什么问题?或者可能来自我从mdiMother mdiMother1调用mdiChild1的方式mdiChild1 mdChild1 = new mdiChild1(); mdChild1.MdiParent = this; mdChild1.Show(); – Yeurl

+1

您不能在任何地方创建新的mdiChilds实例。如果你这样做,那么你在填充列表视图中有问题。分享你的代码来解决它。 – Ahmad

0

感谢所有。我解决了我的问题,我发现它很愚蠢。 Tha的方式它没有填充:不参考良好的形式。为了完成这项工作,我参考了活跃的mdi孩子......并且它的工作:)

感谢所有的帮助...和艾哈迈德谁给我很好的方式来找到解决:p

相关问题