在我的應用程序中,根據需要,一些TabPage
將以編程方式添加到TabControl
。每個頁面將包含ListView
和兩個ListBox
ES:將ListBox項目投射到顏色
//Color Picker
var colorBox = new ListBox
{
DataSource = Enum.GetValues(typeof (KnownColor)),
Height = 40,
Width = tabFiles.Width/3,
Dock = DockStyle.Bottom
};
page.Controls.Add(colorBox);
//Style Picker
var styleBox = new ListBox
{
DataSource = Enum.GetValues(typeof(SymbolType)),
Height = 40,
Width = tabFiles.Width/3,
Dock = DockStyle.Bottom
};
page.Controls.Add(styleBox);
現在以後,我想用下面的代碼所選擇的顏色和符號發送到另一個類,它編譯,但在運行時,它觸發無效轉換。我怎樣才能解決這個問題?
Color color = (Color)((ListBox)tabFiles.TabPages[i].Controls[1]).SelectedItem;
SymbolType symbol = (SymbolType)((ListBox)tabFiles.TabPages[i].Controls[2]).SelectedItem;
P.S:我知道,顏色和符號被添加到頁面索引1和2 respectivly。
謝謝。
'typeof(KnownColor)'和'Color color'之間的關係是什麼?還是僅僅是一個錯字?你也可以提供無效轉換異常的消息嗎? – nemesv 2012-01-03 22:09:17
錯誤消息是'指定的轉換無效。''typeof(KnownColor)'將所有顏色作爲列表框的數據源返回,與SymbolType相同。在第二代碼我試圖在列表框中選擇一種顏色名稱 – 2012-01-03 22:15:44