我試圖更新c#中的flowlayoutpanel內的複選框的值。 爲每個創建的面板生成複選框,並將其命名爲「selected1」。如何訪問流佈局面板中的複選框值?
要嘗試和代碼訪問特定的複選框我使用
flowLayoutPanel2.Controls[e.Index].Controls["selected1"]
我試圖創建一個複選框對象並獲取Name屬性值,並得到一個錯誤,指出:
System.NullReferenceException: Object reference not set to an instance of an object.
我正在使用的代碼是:
try
{
System.Windows.Forms.Control checkBox = new System.Windows.Forms.Control();
checkBox = flowLayoutPanel2.Controls[e.Index].Controls["selected1"];
MessageBox.Show(Convert.ToString(checkBox.Name));
}
catch (Exception ex)
{
MessageBox.Show(Convert.ToString(ex));
}
我想我可能只是試圖訪問檢查以錯誤的方式,就好像我只是試圖訪問包含它的面板一樣,我可以毫無問題地操縱面板。
感謝, 山姆
這段代碼在哪裏?複選框的點擊事件處理程序? e(來自e.Index)從哪裏來? – Eddy 2012-07-23 19:03:25
它在顯示相同數據的列表視圖的事件處理程序中。目前我已經在流佈局面板中的複選框更新相應的列表視圖複選框,但我一直在努力做相反的事情。 e是列表視圖複選框,e.Index是索引,因爲它們是相同編號的面板。 – 2012-07-23 23:32:13
不是你在下面回答的Q,而是:「=新」部分是不需要的。它會創建一個未使用的控件,因爲您在下一行重新分配變量。另外checkBox.Name是一個字符串,所以Convert.ToString()也是不需要的。 – Eddy 2012-07-24 10:22:00