1

の列についてはListView、独自の画像を使用して、並べ替えが昇順か降順かを示しています。プロパティを設定するとcolumn.ImageKey、列のテキストが右に移動して画像用のスペースができます。私が抱えている問題は、不要になったときに画像を削除する方法です。を設定しcolumn.ImageKey = ""column.ImageIndex = -1画像を削除しますが、テキストが開始位置にありません。したがって、基本的にはイメージ オブジェクトのビットマップをリセットするだけで、イメージ オブジェクト自体は削除しません。Image Object を削除/無効にする方法を知りたいです。

4

2 に答える 2

6

列から画像を削除するには、画像を削除した後に列のデフォルトのテキスト配置を復元する必要があります。

column.ImageIndex = -1;
column.TextAlign = HorizontalAlignment.Center;

なぜそれが役に立ったのですか?画像インデックス>= 0を列ヘッダーに割り当てると、内部的に次のメソッドが呼び出されるため

ListView.SetColumnInfo(0x10, column);

列のテキストの配置を変更する

lParam.iImage = column.ActualImageIndex_Internal;
lParam.fmt |= 0x800;
lParam.fmt |= column.TextAlign;
UnsafeNativeMethods.SendMessage(new HandleRef(this, Handle), 
     NativeMethods.LVM_SETCOLUMN, column.Index, lParam);

ただし、イメージ インデックスを -1 に設定している場合、位置合わせは元に戻りません。

于 2013-06-28T11:50:00.340 に答える