我正在處理一個new
按鈕,用於在單擊時重置表單應用程序。 但是我遇到了一個我似乎無法解決的問題。無法清除列表框
基本上我想要做的就是當點擊按鈕new時清除列表框。
「新建」按鈕應該初始化程序,與 啓動時一樣(但不用重新啓動應用程序)。如果未保存數據 ,則允許用戶(通過消息框)確認 繼續進行,而不保存當前數據或返回到當前的 會話。
這裏是我試了一下:
private void mnuNew_Click(object sender, EventArgs e)
{
for (int index = 0; index < animalmgr.Count; index++)
{
Animal animal = animalmgr.GetAt(index);
if (animal != null)
{
// error message
DialogResult dialogResult = MessageBox.Show("The data will be lost. Continue?", "Are you sure?", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
InitializeGUI();
}
else if (dialogResult == DialogResult.No)
{
}
}
else
{
ClearLists(); <--------This does not work!
}
}
}
private void InitializeGUI()
{
animalmgr.DeleteAll();
Resultlst.Items.Clear();
foodItemslst.Items.Clear();
}
public void ClearLists()
{
Gendercmb.DataSource = Enum.GetValues(typeof(GenderType));
Categorylst.DataSource = Enum.GetValues(typeof(Categorytype));
Resultlst.Items.Clear();
foodItemslst.Items.Clear();
}
是什麼工作:如果animal
對象不是null它顯示一個消息框。
什麼行不通:當我打開一個文件,並在列表框中顯示的對象時,new
按鈕不會清除列表。原因是因爲animal
對象在加載文件並顯示後爲空,但它應該調用else
並清除列表,但不是。
UPDATE:
問題仍未所述的方法ClearLists()
。問題是,if statement
,似乎從來沒有去調用它。問題不在ClearLists()
方法本身。問題是它永遠不會被調用。
你調試過嗎? 「動物」實際上是否爲空? – Blorgbeard
首先,我將首先在代碼中放置斷點,然後調試代碼並逐步完成此'foodItemslst'對象的作用域。 – MethodMan
如果'animal'不爲null,則if語句'將是真實的,並顯示消息框 –