我目前正在努力與我的應用程序的GUI。我很難弄清楚ListBox或ListView是否更適合用於多列數據表示。ListView與列表框多列使用
我更喜歡「乾淨」的代碼,因爲意大利麪條代碼和黑客方法可能會導致混淆,所以不要太混亂。
ListBox和ListView如何處理多個列?
我目前正在努力與我的應用程序的GUI。我很難弄清楚ListBox或ListView是否更適合用於多列數據表示。ListView與列表框多列使用
我更喜歡「乾淨」的代碼,因爲意大利麪條代碼和黑客方法可能會導致混淆,所以不要太混亂。
ListBox和ListView如何處理多個列?
當然沒有什麼錯,在這種情況下一個DataGridView
。
樣品:
class Car
{
public string Make { get; set; }
public string Model { get; set; }
public int Year { get; set; }
}
函數將數據加載到DataGridView
private void LoadData()
{
List<Car> cars = new List<Car>()
{
new Car() { Make = "Subaru", Model = "Impreza", Year = 2005 },
new Car() { Make = "Ford", Model = "Mustang", Year = 1984 }
};
dataGridView1.DataSource = cars;
}
當然,從這裏事情可能變得更加複雜,但是如果你只是想顯示的數據表格式......這很簡單。
ListView對於數據的多列表示要好得多。然而,它似乎比簡單的ListBox更復雜/難看的代碼。
還有很多更好的原因,可調整大小的列和所有這些。
我不認爲列表已多列,所以你不得不砍東西難看。
我可以在兩種類型中找到的所有示例都以一些混亂的代碼結束。但正如你所說,ListView看起來更加貼心。你能給一個多列ListView上的codesnippet嗎?謝謝。 – JavaCake 2012-03-16 19:21:44
ListBox控件肯定支持[多列](http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.multicolumn.aspx)。 – 2012-03-16 19:22:24
「多列ListBox將項目放置到所需的列數,以便不必進行垂直滾動。」我不認爲這有幫助。 – Haedrian 2012-03-16 19:24:13
入住這
https://stackoverflow.com/a/227355/988830
雖然列表框用於出單列和listview被用於mutlicolumn,答案是一切取決於。
有時您可能需要多列列表,您需要添加不同類型的子項。你不能使用listview綁定它們,所以最好在這種情況下使用listbox。但是如果你想通過使用頭排序他們,請使用listview,因爲它很簡單。
最後,我會說如果你只是有多列數據,沒有什麼比使用listview更好,否則如果你想做按鈕,樹視圖,擴展器等花式的東西。ListBox真的很酷。
感謝, OMKAR
,如果你想能夠直接從電網編輯數據,如電子表格一個DataGridView是好的。詳細模式下的列表視圖非常適合簡單列出數據列表。就我所知,DataGridView也將更容易排序。
一般來說,我做這樣的事情:
private void UpdateListView()
{
mListView.Items.Clear();
foreach (Item item in mItems)
{
ListViewItem listViewItem =
new ListViewItem(item.Value1.ToString()) { Tag = item; }
listViewItem.SubItems.Add(item.Value2.ToString());
listViewItem.SubItems.Add(item.Value3.ToString());
mListView.Items.Add(listViewItem);
}
}
列將必須設計定義,包括列標題文本和列寬。
With the Tag = item;一部分,您將能夠訪問所選對象:
if (mListView.SelectedIndices.Count <= 0)
return;
Item selectedItem = mListView.SelectedItems[0].Tag as Item;
if (selectedItem == null)
return;
// do something with selectedItem
「DataGridView」怎麼樣? – 2012-03-16 19:46:08
@BryanCrosby,即時處理列表數據。我明白DataGridView適用於數據庫數據。 – JavaCake 2012-03-16 20:23:51
你說你有多列表示。這是一張桌子,這就是我推薦它的原因。你的數據結構是什麼? – 2012-03-16 20:51:53