LoadIcon(ref ReplyIconBlink, "Icons\\ReplyBlink.ico");
}
+ private void InitColumns(ListView list, bool startup)
+ {
+ ColumnHeader _colHd1 = new ColumnHeader(); //アイコン
+ ColumnHeader _colHd2 = new ColumnHeader(); //ニックネーム
+ ColumnHeader _colHd3 = new ColumnHeader(); //本文
+ ColumnHeader _colHd4 = new ColumnHeader(); //日付
+ ColumnHeader _colHd5 = new ColumnHeader(); //ユーザID
+ ColumnHeader _colHd6 = new ColumnHeader(); //未読
+ ColumnHeader _colHd7 = new ColumnHeader(); //マーク&プロテクト
+ ColumnHeader _colHd8 = new ColumnHeader(); //ソース
+
+ if (!_iconCol)
+ {
+ list.Columns.AddRange(new ColumnHeader[] { _colHd1, _colHd2, _colHd3, _colHd4, _colHd5, _colHd6, _colHd7, _colHd8 });
+ }
+ else
+ {
+ list.Columns.AddRange(new ColumnHeader[] { _colHd1, _colHd3 });
+ }
+
+ InitColumnText();
+ _colHd1.Text = ColumnText[0];
+ _colHd1.Width = 48;
+ _colHd2.Text = ColumnText[1];
+ _colHd2.Width = 80;
+ _colHd3.Text = ColumnText[2];
+ _colHd3.Width = 300;
+ _colHd4.Text = ColumnText[3];
+ _colHd4.Width = 50;
+ _colHd5.Text = ColumnText[4];
+ _colHd5.Width = 50;
+ _colHd6.Text = ColumnText[5];
+ _colHd6.Width = 16;
+ _colHd7.Text = ColumnText[6];
+ _colHd7.Width = 16;
+ _colHd8.Text = ColumnText[7];
+ _colHd8.Width = 50;
+
+ int[] dispOrder = new int[8];
+ if (!startup)
+ {
+ for (int i = 0; i < _curList.Columns.Count; i++)
+ {
+ for (int j = 0; j < _curList.Columns.Count; j++)
+ {
+ if (_curList.Columns[j].DisplayIndex == i)
+ {
+ dispOrder[i] = j;
+ break;
+ }
+ }
+ }
+ for (int i = 0; i < _curList.Columns.Count; i++)
+ {
+ list.Columns[i].Width = _curList.Columns[i].Width;
+ list.Columns[dispOrder[i]].DisplayIndex = i;
+ }
+ }
+ else
+ {
+ if (_iconCol)
+ {
+ list.Columns[0].Width = _cfgLocal.Width1;
+ list.Columns[1].Width = _cfgLocal.Width3;
+ list.Columns[0].DisplayIndex = 0;
+ list.Columns[1].DisplayIndex = 1;
+ }
+ else
+ {
+ for (int i = 0; i <= 7; i++)
+ {
+ if (_cfgLocal.DisplayIndex1 == i)
+ dispOrder[i] = 0;
+ else if (_cfgLocal.DisplayIndex2 == i)
+ dispOrder[i] = 1;
+ else if (_cfgLocal.DisplayIndex3 == i)
+ dispOrder[i] = 2;
+ else if (_cfgLocal.DisplayIndex4 == i)
+ dispOrder[i] = 3;
+ else if (_cfgLocal.DisplayIndex5 == i)
+ dispOrder[i] = 4;
+ else if (_cfgLocal.DisplayIndex6 == i)
+ dispOrder[i] = 5;
+ else if (_cfgLocal.DisplayIndex7 == i)
+ dispOrder[i] = 6;
+ else if (_cfgLocal.DisplayIndex8 == i)
+ dispOrder[i] = 7;
+ }
+ list.Columns[0].Width = _cfgLocal.Width1;
+ list.Columns[1].Width = _cfgLocal.Width2;
+ list.Columns[2].Width = _cfgLocal.Width3;
+ list.Columns[3].Width = _cfgLocal.Width4;
+ list.Columns[4].Width = _cfgLocal.Width5;
+ list.Columns[5].Width = _cfgLocal.Width6;
+ list.Columns[6].Width = _cfgLocal.Width7;
+ list.Columns[7].Width = _cfgLocal.Width8;
+ for (int i = 0; i <= 7; i++)
+ {
+ list.Columns[dispOrder[i]].DisplayIndex = i;
+ }
+ }
+ }
+ }
+
private void InitColumnText()
{
ColumnText[0] = "";
{
DetailsListView lst = (DetailsListView)tp.Tag;
- lst.SuspendLayout();
lst.BeginUpdate();
+ lst.SuspendLayout();
- lst.SelectedIndexChanged -= MyList_SelectedIndexChanged;
- lst.MouseDoubleClick -= MyList_MouseDoubleClick;
- lst.ColumnClick -= MyList_ColumnClick;
- lst.DrawColumnHeader -= MyList_DrawColumnHeader;
- lst.DragDrop -= TweenMain_DragDrop;
- lst.DragOver -= TweenMain_DragOver;
- lst.DrawItem -= MyList_DrawItem;
- lst.MouseClick -= MyList_MouseClick;
- lst.ColumnReordered -= MyList_ColumnReordered;
- lst.ColumnWidthChanged -= MyList_ColumnWidthChanged;
- lst.CacheVirtualItems -= MyList_CacheVirtualItems;
- lst.RetrieveVirtualItem -= MyList_RetrieveVirtualItem;
- lst.DrawSubItem -= MyList_DrawSubItem;
- lst.HScrolled -= MyList_HScrolled;
-
+ // アイコンサイズの再設定
_iconCol = false;
switch (SettingDialog.IconSz)
{
lst.Font = _fntReaded;
lst.BackColor = _clListBackcolor;
- var columns = new List<ColumnHeader>();
- foreach (ColumnHeader col in lst.Columns)
- {
- columns.Add(col);
- }
+ // カラムヘッダの再設定
+ lst.ColumnClick -= MyList_ColumnClick;
+ lst.DrawColumnHeader -= MyList_DrawColumnHeader;
+ lst.ColumnReordered -= MyList_ColumnReordered;
+ lst.ColumnWidthChanged -= MyList_ColumnWidthChanged;
+
+ var cols = new List<ColumnHeader>(lst.Columns.OfType<ColumnHeader>());
lst.Columns.Clear();
- foreach (ColumnHeader col in columns)
- {
- col.Dispose();
- }
- columns.Clear();
-
- ColumnHeader _colHd1 = new ColumnHeader(); //アイコン
- ColumnHeader _colHd2 = new ColumnHeader(); //ニックネーム
- ColumnHeader _colHd3 = new ColumnHeader(); //本文
- ColumnHeader _colHd4 = new ColumnHeader(); //日付
- ColumnHeader _colHd5 = new ColumnHeader(); //ユーザID
- ColumnHeader _colHd6 = new ColumnHeader(); //未読
- ColumnHeader _colHd7 = new ColumnHeader(); //マーク&プロテクト
- ColumnHeader _colHd8 = new ColumnHeader(); //ソース
-
- if (!_iconCol)
- {
- lst.Columns.AddRange(new ColumnHeader[] { _colHd1, _colHd2, _colHd3, _colHd4, _colHd5, _colHd6, _colHd7, _colHd8 });
- }
- else
- {
- lst.Columns.AddRange(new ColumnHeader[] { _colHd1, _colHd3 });
- }
+ cols.ForEach(col => col.Dispose());
+ cols.Clear();
- InitColumnText();
- _colHd1.Text = ColumnText[0];
- _colHd1.Width = 48;
- _colHd2.Text = ColumnText[1];
- _colHd2.Width = 80;
- _colHd3.Text = ColumnText[2];
- _colHd3.Width = 300;
- _colHd4.Text = ColumnText[3];
- _colHd4.Width = 50;
- _colHd5.Text = ColumnText[4];
- _colHd5.Width = 50;
- _colHd6.Text = ColumnText[5];
- _colHd6.Width = 16;
- _colHd7.Text = ColumnText[6];
- _colHd7.Width = 16;
- _colHd8.Text = ColumnText[7];
- _colHd8.Width = 50;
-
- int[] dispOrder = new int[8];
- if (_iconCol)
- {
- lst.Columns[0].Width = _cfgLocal.Width1;
- lst.Columns[1].Width = _cfgLocal.Width3;
- lst.Columns[0].DisplayIndex = 0;
- lst.Columns[1].DisplayIndex = 1;
- }
- else
- {
- for (int i = 0; i <= 7; i++)
- {
- if (_cfgLocal.DisplayIndex1 == i)
- dispOrder[i] = 0;
- else if (_cfgLocal.DisplayIndex2 == i)
- dispOrder[i] = 1;
- else if (_cfgLocal.DisplayIndex3 == i)
- dispOrder[i] = 2;
- else if (_cfgLocal.DisplayIndex4 == i)
- dispOrder[i] = 3;
- else if (_cfgLocal.DisplayIndex5 == i)
- dispOrder[i] = 4;
- else if (_cfgLocal.DisplayIndex6 == i)
- dispOrder[i] = 5;
- else if (_cfgLocal.DisplayIndex7 == i)
- dispOrder[i] = 6;
- else if (_cfgLocal.DisplayIndex8 == i)
- dispOrder[i] = 7;
- }
- lst.Columns[0].Width = _cfgLocal.Width1;
- lst.Columns[1].Width = _cfgLocal.Width2;
- lst.Columns[2].Width = _cfgLocal.Width3;
- lst.Columns[3].Width = _cfgLocal.Width4;
- lst.Columns[4].Width = _cfgLocal.Width5;
- lst.Columns[5].Width = _cfgLocal.Width6;
- lst.Columns[6].Width = _cfgLocal.Width7;
- lst.Columns[7].Width = _cfgLocal.Width8;
- for (int i = 0; i <= 7; i++)
- {
- lst.Columns[dispOrder[i]].DisplayIndex = i;
- }
- }
+ InitColumns(lst, true);
- lst.SelectedIndexChanged += MyList_SelectedIndexChanged;
- lst.MouseDoubleClick += MyList_MouseDoubleClick;
lst.ColumnClick += MyList_ColumnClick;
lst.DrawColumnHeader += MyList_DrawColumnHeader;
- lst.DragDrop += TweenMain_DragDrop;
- lst.DragOver += TweenMain_DragOver;
- lst.DrawItem += MyList_DrawItem;
- lst.MouseClick += MyList_MouseClick;
lst.ColumnReordered += MyList_ColumnReordered;
lst.ColumnWidthChanged += MyList_ColumnWidthChanged;
- lst.CacheVirtualItems += MyList_CacheVirtualItems;
- lst.RetrieveVirtualItem += MyList_RetrieveVirtualItem;
- lst.DrawSubItem += MyList_DrawSubItem;
- lst.HScrolled += MyList_HScrolled;
- lst.EndUpdate();
lst.ResumeLayout(false);
+ lst.EndUpdate();
}
}
catch (Exception ex)
TabPage _tabPage = new TabPage();
DetailsListView _listCustom = new DetailsListView();
- ColumnHeader _colHd1 = new ColumnHeader(); //アイコン
- ColumnHeader _colHd2 = new ColumnHeader(); //ニックネーム
- ColumnHeader _colHd3 = new ColumnHeader(); //本文
- ColumnHeader _colHd4 = new ColumnHeader(); //日付
- ColumnHeader _colHd5 = new ColumnHeader(); //ユーザID
- ColumnHeader _colHd6 = new ColumnHeader(); //未読
- ColumnHeader _colHd7 = new ColumnHeader(); //マーク&プロテクト
- ColumnHeader _colHd8 = new ColumnHeader(); //ソース
int cnt = ListTab.TabPages.Count;
///ToDo:Create and set controls follow tabtypes
+ _listCustom.BeginUpdate();
this.SplitContainer1.Panel1.SuspendLayout();
this.SplitContainer1.Panel2.SuspendLayout();
this.SplitContainer1.SuspendLayout();
_tabPage.UseVisualStyleBackColor = true;
_listCustom.AllowColumnReorder = true;
- if (!_iconCol)
- {
- _listCustom.Columns.AddRange(new ColumnHeader[] {_colHd1, _colHd2, _colHd3, _colHd4, _colHd5, _colHd6, _colHd7, _colHd8});
- }
- else
- {
- _listCustom.Columns.AddRange(new ColumnHeader[] {_colHd1, _colHd3});
- }
_listCustom.ContextMenuStrip = this.ContextMenuOperate;
_listCustom.Dock = DockStyle.Fill;
_listCustom.FullRowSelect = true;
_listCustom.GridLines = SettingDialog.ShowGrid;
_listCustom.AllowDrop = true;
+ _listCustom.SmallImageList = new ImageList();
+ if (_iconSz > 0)
+ {
+ // ディスプレイの DPI 設定を考慮したサイズを設定する
+ _listCustom.SmallImageList.ImageSize = new Size(
+ (int)Math.Ceiling(this._iconSz * this.currentScaleFactor.Width),
+ (int)Math.Ceiling(this._iconSz * this.currentScaleFactor.Height));
+ }
+ else
+ {
+ _listCustom.SmallImageList.ImageSize = new Size(1, 1);
+ }
+
+ InitColumns(_listCustom, startup);
+
_listCustom.SelectedIndexChanged += MyList_SelectedIndexChanged;
_listCustom.MouseDoubleClick += MyList_MouseDoubleClick;
_listCustom.ColumnClick += MyList_ColumnClick;
_listCustom.DrawSubItem += MyList_DrawSubItem;
_listCustom.HScrolled += MyList_HScrolled;
- InitColumnText();
- _colHd1.Text = ColumnText[0];
- _colHd1.Width = 48;
- _colHd2.Text = ColumnText[1];
- _colHd2.Width = 80;
- _colHd3.Text = ColumnText[2];
- _colHd3.Width = 300;
- _colHd4.Text = ColumnText[3];
- _colHd4.Width = 50;
- _colHd5.Text = ColumnText[4];
- _colHd5.Width = 50;
- _colHd6.Text = ColumnText[5];
- _colHd6.Width = 16;
- _colHd7.Text = ColumnText[6];
- _colHd7.Width = 16;
- _colHd8.Text = ColumnText[7];
- _colHd8.Width = 50;
-
- _listCustom.SmallImageList = new ImageList();
- if (_iconSz > 0)
- {
- // ディスプレイの DPI 設定を考慮したサイズを設定する
- _listCustom.SmallImageList.ImageSize = new Size(
- (int)Math.Ceiling(this._iconSz * this.currentScaleFactor.Width),
- (int)Math.Ceiling(this._iconSz * this.currentScaleFactor.Height));
- }
- else
- {
- _listCustom.SmallImageList.ImageSize = new Size(1, 1);
- }
-
- int[] dispOrder = new int[8];
- if (!startup)
- {
- for (int i = 0; i < _curList.Columns.Count; i++)
- {
- for (int j = 0; j < _curList.Columns.Count; j++)
- {
- if (_curList.Columns[j].DisplayIndex == i)
- {
- dispOrder[i] = j;
- break;
- }
- }
- }
- for (int i = 0; i < _curList.Columns.Count; i++)
- {
- _listCustom.Columns[i].Width = _curList.Columns[i].Width;
- _listCustom.Columns[dispOrder[i]].DisplayIndex = i;
- }
- }
- else
- {
- if (_iconCol)
- {
- _listCustom.Columns[0].Width = _cfgLocal.Width1;
- _listCustom.Columns[1].Width = _cfgLocal.Width3;
- _listCustom.Columns[0].DisplayIndex = 0;
- _listCustom.Columns[1].DisplayIndex = 1;
- }
- else
- {
- for (int i = 0; i <= 7; i++)
- {
- if (_cfgLocal.DisplayIndex1 == i)
- dispOrder[i] = 0;
- else if (_cfgLocal.DisplayIndex2 == i)
- dispOrder[i] = 1;
- else if (_cfgLocal.DisplayIndex3 == i)
- dispOrder[i] = 2;
- else if (_cfgLocal.DisplayIndex4 == i)
- dispOrder[i] = 3;
- else if (_cfgLocal.DisplayIndex5 == i)
- dispOrder[i] = 4;
- else if (_cfgLocal.DisplayIndex6 == i)
- dispOrder[i] = 5;
- else if (_cfgLocal.DisplayIndex7 == i)
- dispOrder[i] = 6;
- else if (_cfgLocal.DisplayIndex8 == i)
- dispOrder[i] = 7;
- }
- _listCustom.Columns[0].Width = _cfgLocal.Width1;
- _listCustom.Columns[1].Width = _cfgLocal.Width2;
- _listCustom.Columns[2].Width = _cfgLocal.Width3;
- _listCustom.Columns[3].Width = _cfgLocal.Width4;
- _listCustom.Columns[4].Width = _cfgLocal.Width5;
- _listCustom.Columns[5].Width = _cfgLocal.Width6;
- _listCustom.Columns[6].Width = _cfgLocal.Width7;
- _listCustom.Columns[7].Width = _cfgLocal.Width8;
- for (int i = 0; i <= 7; i++)
- {
- _listCustom.Columns[dispOrder[i]].DisplayIndex = i;
- }
- }
- }
-
if (tabType == MyCommon.TabUsageType.PublicSearch) pnl.ResumeLayout(false);
_tabPage.ResumeLayout(false);
this.ListTab.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
+ _listCustom.EndUpdate();
_tabPage.Tag = _listCustom;
return true;
}