none
為何ListView中的ColumnHeader.Name等於空白? RRS feed

  • 問題

  • 請問各位先進,

    為何ListView中的ColumnHeader.Name等於空白?我看VS2005的文件中說這個屬性是2.0新增的,但我在VS2005中還是看不到他的值。而且在Form.Designer.cs中也沒有看到設定ColumnHeader.Name的程式碼。請各給先進給我指導一下,謝謝

     

    2006年10月30日 上午 02:42

解答

  • 預設應該就是空白吧 ...
    而且那個也不必刻意(也沒有要求)去設定 Name.
    重點是 Text...

    private void PopulateListView()
    {
        ListView1.Width = 270;
        ListView1.Location = new System.Drawing.Point(10, 10);
    
        // Declare and construct the ColumnHeader objects.
        ColumnHeader header1, header2;
        header1 = new ColumnHeader();
        header2 = new ColumnHeader();
    
        // Set the text, alignment and width for each column header.
        header1.Text = "File name";
        header1.TextAlign = HorizontalAlignment.Left;
        header1.Width = 70;
    
        header2.TextAlign = HorizontalAlignment.Left;
        header2.Text = "Location";
        header2.Width = 200;
    
        // Add the headers to the ListView control.
        ListView1.Columns.Add(header1);
        ListView1.Columns.Add(header2);
    
        // Populate the ListView.Items property.
        // Set the directory to the sample picture directory.
        System.IO.DirectoryInfo dirInfo = 
            new System.IO.DirectoryInfo(
            "C:\\Documents and Settings\\All Users" +
            "\\Documents\\My Pictures\\Sample Pictures");
        
    
        // Get the .jpg files from the directory
        System.IO.FileInfo[] files = dirInfo.GetFiles("*.jpg");
    
        // Add each file name and full name including path
        // to the ListView.
        if (files != null)
        {
            foreach ( System.IO.FileInfo file in files )
            {
                ListViewItem item = new ListViewItem(file.Name);
                item.SubItems.Add(file.FullName);
                ListView1.Items.Add(item);
            }
        }
    }
    
    2006年11月17日 上午 08:29
    版主

所有回覆

  • 是看不到 "Column" 還是看到了 "Column" 卻沒有值?

    ListView 的 Column 限定在 ListView.View = View.Details 時才會出現 .

    2006年11月12日 上午 03:58
    版主
  • 我在程式中讀取ListView的ColumnHeader.Name的值,而結果等於空白(""),因此我去Form.Designer.cs中看InitializeComponent(),結果發現其他元件都指定該元件的Name,而ColumnHeader的Name卻沒被指定,因此在程式中讀取ColumnHeader.Name的值就等於空白,這算是BUG嗎?

    example:

                 //
                // columnHeader1
                //
                resources.ApplyResources(this.columnHeader1, "columnHeader1");
                //
                // panel1
                // 
                resources.ApplyResources(this.panel1, "panel1");
                this.panel1.Name = "panel1";

    沒有this.columnHeader1.Name="columnHeader1";

     

     小朱 寫信:

    是看不到 "Column" 還是看到了 "Column" 卻沒有值?

    ListView 的 Column 限定在 ListView.View = View.Details 時才會出現 .

     

     

    2006年11月17日 上午 08:03
  • 預設應該就是空白吧 ...
    而且那個也不必刻意(也沒有要求)去設定 Name.
    重點是 Text...

    private void PopulateListView()
    {
        ListView1.Width = 270;
        ListView1.Location = new System.Drawing.Point(10, 10);
    
        // Declare and construct the ColumnHeader objects.
        ColumnHeader header1, header2;
        header1 = new ColumnHeader();
        header2 = new ColumnHeader();
    
        // Set the text, alignment and width for each column header.
        header1.Text = "File name";
        header1.TextAlign = HorizontalAlignment.Left;
        header1.Width = 70;
    
        header2.TextAlign = HorizontalAlignment.Left;
        header2.Text = "Location";
        header2.Width = 200;
    
        // Add the headers to the ListView control.
        ListView1.Columns.Add(header1);
        ListView1.Columns.Add(header2);
    
        // Populate the ListView.Items property.
        // Set the directory to the sample picture directory.
        System.IO.DirectoryInfo dirInfo = 
            new System.IO.DirectoryInfo(
            "C:\\Documents and Settings\\All Users" +
            "\\Documents\\My Pictures\\Sample Pictures");
        
    
        // Get the .jpg files from the directory
        System.IO.FileInfo[] files = dirInfo.GetFiles("*.jpg");
    
        // Add each file name and full name including path
        // to the ListView.
        if (files != null)
        {
            foreach ( System.IO.FileInfo file in files )
            {
                ListViewItem item = new ListViewItem(file.Name);
                item.SubItems.Add(file.FullName);
                ListView1.Items.Add(item);
            }
        }
    }
    
    2006年11月17日 上午 08:29
    版主