OSDN Git Service

AppliStation-GUI,ソート済みの行を削除したときソートされていない行がソート行かのように表示されていたのを修正。
authorttp <ttp@users.sourceforge.jp>
Sun, 13 Dec 2009 08:44:57 +0000 (17:44 +0900)
committerttp <ttp@users.sourceforge.jp>
Sun, 13 Dec 2009 08:44:57 +0000 (17:44 +0900)
AppliStation/PackageListView.cs
AppliStation/PackageListViewForm.cs

index 2d4b1b1..48665ec 100644 (file)
@@ -229,12 +229,26 @@ namespace AppliStation
                \r
                #region Sort関連\r
                \r
+               /// <summary>\r
+               /// 選択しているコラムを設定あるいは取得を行う。\r
+               /// </summary>\r
+               public ColumnHeader SortColumn {\r
+                       get {\r
+                               return sortComparer.Column;\r
+                       }\r
+                       set {\r
+                               sortColumn(value);\r
+                       }\r
+               }\r
+               \r
                protected void sortColumn(ColumnHeader column)\r
                {\r
-                       int columnIndex = column.Index;\r
+                       int columnIndex = (column != null)? column.Index : -1;\r
                        SortOrder order = SortOrder.None;\r
                        \r
-                       if (sortComparer.ColumnIndex == columnIndex) {\r
+                       if (columnIndex < 0) {\r
+                               sortComparer.Order = order = SortOrder.None;\r
+                       } else if (sortComparer.ColumnIndex == columnIndex) {\r
                                order = (sortComparer.Order == SortOrder.Ascending)? SortOrder.Descending : SortOrder.Ascending;\r
                                        \r
                                sortComparer.Order = order;\r
index d6548cf..d68ee0d 100644 (file)
@@ -651,6 +651,7 @@ namespace AppliStation
                void ColumnCommonToolStripMenuItemClick(object sender, EventArgs e)\r
                {\r
                        packageListView.BeginUpdate();\r
+                       ColumnHeader sortcolumn = packageListView.SortColumn;\r
                        \r
                        // 列の追加と削除\r
                        foreach (ToolStripItem item in columnToolStripMenuItem.DropDownItems) {\r
@@ -661,6 +662,9 @@ namespace AppliStation
                                        foreach (ColumnHeader header in packageListView.Columns) {\r
                                                if (header.Tag == menu.Tag) {\r
                                                        exists = true;\r
+                                                       if (sortcolumn == header) {\r
+                                                               packageListView.SortColumn = sortcolumn = null;\r
+                                                       }\r
                                                        if (menu.Checked == false) {\r
                                                                packageListView.Columns.Remove(header);\r
                                                        }\r
@@ -678,6 +682,8 @@ namespace AppliStation
                                }\r
                        }\r
                        \r
+                       AppliStation.Util.NativeMethods.ColumnHeader_SetSortState(packageListView, (sortcolumn != null)? sortcolumn.Index : -1, SortOrder.None);\r
+                       \r
                        packageListView.UpdateItems();\r
                        \r
                        packageListView.EndUpdate();\r