評価
良い / 悪い = 46 / 1 (「良い」の割合 = 0.979 , 人気度 = 1.637 )
評価する
- 人を不快にさせる内容の投稿は絶対にしないでください。悪質な投稿者には、予告なく罰則(閲覧禁止やIP公開等)を科します。
- この記事だけでない、全般的なご提案は「DOBON.NETへの提案」に、ご意見は「お気楽掲示板」に投稿してください。
- 5文字以上、1000文字以下のコメントしか投稿できません。
- HTMLタグは使用できません。
Copyright(C) DOBON!. All rights reserved.
Link 2015/05/14 (Thu) 07:14:33
//サンプル開始
lvItems.BeginUpdate();
lvItems.View = View.Details;
lvItems.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
int intNameWidth = lvItems.Columns[0].Width;
lvItems.View = View.SmallIcon;
lvItems.Columns[0].Width = intNameWidth;
lvItems.EndUpdate();
// サンプル終了
上記でlvItemsがListViewです。
結果として、一旦Deteilにして自動調整し、その幅を記憶しておきます。
目的のViewに設定し、改めてWidthを設定するとうまくいくようです。
ちなみに、BeginUpdate()とEndUpdate()でくるんでいるのはチラつき除けのつもりです。ない方がいい場合もあるかもしれません。
また、サンプルはボタンなどをクリックした際に呼ばれるところでの記述ですが、
幅を親フォームのメンバー変数としておき、アイテムをListViewに追加した時点で保持しておき、Viewを切り替える処理で単に
// ダメだったサンプル開始
lvItems.View = View.SmallIcon;
lvItems.Columns[0].Width = m_intNameWidth;
// ダメだったサンプル終了
としただけでは、うまくいきませんでした。