File Handler の完成

ListView のカラムをクリックすると昇順/降順に並べ替えます。
一応これで File Handler の最初の Version が完成です。

前田稔(Maeda Minoru)の超初心者のプログラム入門

カラムソート

  1. ListView のカラムソートをサポートして、最初の Version を完成します。
    カラムソートは ListView Sort を参照して下さい。
    using で System.Collections を定義します。
    LVSort がカラムソートする Object Class です。
      using System.Collections;
      ListViewSort    LVSort;
    
  2. MyForm_Load() メソッドで LVSort を初期化します。
    ColumnModes にカラムごとのソートモードを設定します。
    ListView1.ListViewItemSorter = LVSort; でアイテムを比較するメソッドを定義した Class を設定します。
        LVSort = new ListViewSort();
        LVSort.ColumnModes = new ListViewSort.ComparerMode[]
        {   ListViewSort.ComparerMode.String,
            ListViewSort.ComparerMode.DateTime,
            ListViewSort.ComparerMode.Integer,
            ListViewSort.ComparerMode.String
        };
        ListView1.ListViewItemSorter = LVSort;
    
  3. カラムがクリックされた時に、ソートメソッドを呼び出します。
        this.listView1.ColumnClick += new ColumnClickEventHandler(ListView1_ColumnClick);
    
        private void ListView1_ColumnClick(object sender, ColumnClickEventArgs e)
        {
            LVSort.Column = e.Column;
            ListView1.Sort();
        }
    
  4. ListView のカラムソートクラスの定義は ListView Sort を参照して下さい。
  5. フォルダサイズが "" だとエラーになるので "0" に設定して下さい。
                //ディレクトリ一覧の取得
                DirectoryInfo[] dis = di.GetDirectories("*.*"); //パターンを指定
                for (int i = 0; i < dis.Length; i++)
                {   item[0] = dis[i].Name;
                        ・・・
                    item[3] = "";
                        ・・・
    
  6. LVSort を設定すると、何故か一部のアイコンが表示されません。
    SetList() の最初で ListViewItemSorter に null を設定して、設定が終われば LVSort に戻します。
        // List View にノード(Item)を設定
        private void SetList(string path)
        {
            if (!Directory.Exists(path))    // ディレクトリが存在しない
            {   MessageBox.Show(path + " にメディアを挿入してください。");
                return;
            }
    
            listView1.ListViewItemSorter = null;
            listView1.Items.Clear();
                ・・・
            catch(Exception)
            {   Console.WriteLine("アクセス権 or ERROR: " + path);  }
            listView1.ListViewItemSorter = LVSort;
        }
    
  7. これで一応 File Handler が使えるようになり Version 1.0 の完成です。
    C言語 Windows でも FIle Handler を開発しています。
    File Handler を作成する を参照して下さい。

[Previous Chapter ↑] Private Menu

超初心者のプログラム入門(C# Frame Work)