0

リストビューがあり、列が 1 つあります。ビューは List に設定されており、各 Listviewitem を表示できますが、アイテムの行を選択できず、アイテムのテキストを選択する必要があります。Listviewitem の幅を Listview 自体と同じサイズにして、ユーザーが Listviewitem の任意の場所をクリックしてアイテムを選択できるようにすることは可能ですか?

検索してみましたが、列幅を変更する方法とXAMLで修正する方法しか見つかりませんでしたが、これはWinFormの場合です。

編集 - 要求どおり、これは Visual Studio デザイナーによって生成されるコードです。ListviewItem に関連する唯一のコードです。

System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem("1");
System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem("2");
System.Windows.Forms.ListViewItem listViewItem3 = new System.Windows.Forms.ListViewItem("3");
System.Windows.Forms.ListViewItem listViewItem4 = new System.Windows.Forms.ListViewItem("4");
System.Windows.Forms.ListViewItem listViewItem5 = new System.Windows.Forms.ListViewItem("5");
System.Windows.Forms.ListViewItem listViewItem6 = new System.Windows.Forms.ListViewItem("6");
System.Windows.Forms.ListViewItem listViewItem7 = new System.Windows.Forms.ListViewItem("7");
this.listView1 = new System.Windows.Forms.ListView();

this.listView1.Activation = System.Windows.Forms.ItemActivation.OneClick;
            this.listView1.AllowDrop = true;
            this.listView1.AutoArrange = false;          
            this.listView1.BorderStyle = System.Windows.Forms.BorderStyle.None;
            this.listView1.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.listView1.ForeColor = System.Drawing.SystemColors.MenuHighlight;
            this.listView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
            listViewItem1.StateImageIndex = 0;
            this.listView1.Items.AddRange(new System.Windows.Forms.ListViewItem[] {
            listViewItem1,
            listViewItem2,
            listViewItem3,
            listViewItem4,
            listViewItem5,
            listViewItem6,
            listViewItem7});
            this.listView1.Location = new System.Drawing.Point(105, 129);
            this.listView1.Name = "listView1";
            this.listView1.Size = new System.Drawing.Size(157, 475);
            this.listView1.TabIndex = 4;
            this.listView1.UseCompatibleStateImageBehavior = false;
            this.listView1.View = System.Windows.Forms.View.List;
4

2 に答える 2

3

簡単な解決策は、リスト ビューの代わりにリスト ボックスを使用することです。

単純なテキストの場合は、ListBox を使用することをお勧めします。

アップデート:

ListView でこの機能を取得するための最も簡単なハックは、各項目文字列の最後にダミー スペースを追加して埋めることです。

于 2013-01-20T19:10:59.730 に答える
0

Better ListViewBetter ListView Express (無料) はこれをサポートしています。デフォルトでは ListBox のように動作します (詳細ビュー、列なし):

ここに画像の説明を入力

項目の自動サイズ変更は、AutoSizeItemsInDetailsViewプロパティをtrueに設定することでトリガーできます。

betterListView.AutoSizeItemsInDetailsView = true;
于 2013-02-16T15:37:32.480 に答える