2016-03-27 15 views
2

2つの奇妙なことがあります。 最初に、カラムを追加しないようにマークしたカラムを使用しないようにマークしました。 カラムを使用する前は問題なく動作していましたが、実際には使用しないとListViewにアイテムを追加しているように見えますが、実際にはListViewに何もないので空です。私はListView UserControlを作成しましたが、項目1を追加するときにform1デザイナにドラッグした後、何も表示されません。

まず、リストビューのユーザーコントロール:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Drawing; 
using System.Data; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace Searcher 
{ 
    public partial class ListViewCostumControl : UserControl 
    { 
     public static ListViewControl lvnf; 

     public ListViewCostumControl() 
     { 
      InitializeComponent(); 

      lvnf = new ListViewControl(); 
      lvnf.Location = new Point(50, 50); 
      lvnf.Size = new Size(50, 50); 
      lvnf.View = View.Details; 
      lvnf.Dock = DockStyle.Fill; 
      lvnf.SuspendLayout(); 
      lvnf.LabelEdit = true; 
      //lvnf.Columns.Add("From", 100, HorizontalAlignment.Left); 
      //lvnf.Columns.Add("Subject", 200); 
      //lvnf.Columns.Add("Date", 300); 
      lvnf.Sorting = SortOrder.None; 
      this.Controls.Add(lvnf); 
      lvnf.ResumeLayout(false); 
     } 

     public class ListViewControl : System.Windows.Forms.ListView 
     { 
      public ListViewControl() 
      { 
       this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); 

       this.SetStyle(ControlStyles.EnableNotifyMessage, true); 
      } 

      protected override void OnNotifyMessage(System.Windows.Forms.Message m) 
      { 
       if (m.Msg != 0x14) 
       { 
        base.OnNotifyMessage(m); 
       } 
      } 
     } 

     private void ListViewNFTest_Load(object sender, EventArgs e) 
     { 

     } 
    } 
} 

そして、これは私がForm1の中でそれを使用している方法です。 Form1の中に奇妙なこと私は私が見るツールボックスからリストビューをsrag:

listViewCostumControl1私が入力したときにForm1の中でそれを使用しようとしている: listViewCostumControl1を。アイテムのようなプロパティはありません。

ListViewCostumControl.lvnf.BeginUpdate(); 
ListViewCostumControl.lvnf.Items.Add("Directory: " + lblCurrentDirectory.Text + "In File: " + lblStatus.Text + l[i]); 
ListViewCostumControl.lvnf.Invalidate(); 

しかし、それは私がItems.AddとBeginUpdateメソッドのような特性を持つlistViewCostumControl1を使用することをすべきではない:私はForm1の中で行う必要がある何 はありますか?

私はここで何をしましたか? 私はform1デザイナーでドラッグしているものは、私がform1コードで使用しているものではないようです。

ListViewコントロールのUserControlを、ツールボックスからデザイナにドラッグする他のコントロールと同じように動作させるにはどうすればよいですか/変更する必要がありますか?

答えて

1

ワーアーは私のアイテムですか?

Detailsモードで表示するようにlistViewを設定すると、いくつかの列がある場合にのみ項目が表示されます。したがって、列を追加しないと、列は表示されません。

この問題を解決するには、List,SmallIcon、...のように、列を追加するか、プロパティを別のビューに設定することができます。

Itemsプロパティはどこですか?

UserControlから継承され、Itemsプロパティはありません。

この問題を解決するには、カスタムリストビューが必要な場合は、ListViewから直接継承し、UserControlではなく、継承します。カスタムリストビューを使用すると、ItemsのようなすべてのListViewプロパティが表示されます。

関連する問題