none
请问各位大侠如何刷新ListView? RRS feed

  • 問題

  •  

    我用c#做了一个Form,一边是TreeView,另一边是ListView, 我希望当我用鼠标点击TreeView中的Item时,在listview 中可以显示相应的参数。我事先了这些功能,可是当显示参数时,他没有刷新屏幕或listview的表格,只是把新加内容append在旧的参数后面。我试了refresh() method, 没有任何变化。

     

    请问高手是何原因,如何解决?

    在这里先谢过了。

     

     

    2007年8月1日 下午 06:53

解答

  • Hi SnowLover_NF,

     

    您應該在點擊不同的TreeNode時(AfterSelect event)時檢查ListView是否已經有項目存在,如果有的話要先將項目清空。請參考以下範例:

    Code Snippet

     

     private void Form1_Load(object sender, EventArgs e)
            {
                if (this.treeView1.Nodes.Count == 0)
                {
                    this.treeView1.Nodes.Add("A");
                    this.treeView1.Nodes.Add("B");
                    this.treeView1.Nodes.Add("C");
                }           

            }

            private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                if (this.listView1.Items.Count > 0)
                { this.listView1.Items.Clear(); }

                switch (this.treeView1.SelectedNode.Text){
                    case "A":
                        this.listView1.Items.Add(new ListViewItem("A1"));
                        this.listView1.Items.Add(new ListViewItem("A2"));
                        break;
                    case "B":
                        this.listView1.Items.Add(new ListViewItem("B1"));
                        this.listView1.Items.Add(new ListViewItem("B2"));
                        break;
                    case "C":
                        this.listView1.Items.Add(new ListViewItem("C1"));
                        this.listView1.Items.Add(new ListViewItem("C2"));
                        break;
                }              
            }

     

     

     

    Regards,

     

    林泰宏 Terry Lin 
    技術支援工程師 Support Engineer
    Developer Support Team
    Global Technical Support Center - Taiwan

    技術支援服務首頁: http://support.microsoft.com

    技術支援專線: 0800-008-833(市話專用)/ 02-2999-8833

     

     

     

     

    2007年8月2日 上午 01:36