2016-11-16 14 views
1

我創造了學校的一個項目,我一直負責創建的窗體上按鈕,將添加標記成一個簡單的數組時以下幾點:C# - 如何禁用按鈕後,參賽人數達到

「添加最大數量的測驗後,按鈕(添加)應該被禁用。」

到目前爲止,我已經想通了,我需要代碼: btn.Add.Enabled = false

ex.code下面

private void btnAdd_Click(object sender, EventArgs e)  
{ 
    btn.Add.Enabled = false 
} 

不過,我不知道我應該聲明它與其他代碼一起存儲表單上文本框中的測驗標記。

這應該是for loop的一部分嗎?我可以在BtnAdd Click事件中自行聲明它嗎?

(感謝從極端的C#新手提前)

+0

哪裏做u評估'quizzes'的最大數量只是做一個if條件存在本身,如果'測驗的最大數> =無論number'比'btn.Add.Enabled = FALSE ;' –

+0

我確定'btn.Add.Enabled = false;'應該是'btnAdd.Enabled = false;'而是。 btnAdd是按鈕的實際ID。 –

+0

你沒學過學校裏的if語句嗎? – Jim

回答

1

如何:

List<Quiz> quizzes = new List<Quiz>(); 
int limit = 5; 
private void btnAdd_Click(object sender, EventArgs e) 
{ 
    var isEnabled = (quizzes.Count < limit); 
    If (isEnabled) { quizzes.Add(new Quiz("abc")); } 
    isEnabled = (quizzes.Count < limit); 
    btn.Add.Enabled = isEnabled; 

} 

編輯。簡化了一點

+0

我想,如果先加入測驗,然後再檢查計數會更好。在這種情況下,需要點擊按鈕來使其失效。 – Bharadwaj

+0

我將在else語句中包含另一個測驗計數檢查,以便在按下按鈕後立即禁用按鈕。這對用戶體驗更重要。 –

0

在類級別聲明一個整型變量(在btnAdd_Click方法之外),將其命名爲counter並將其初始化爲零。

在btnAdd_Click裏面,寫一個if語句來檢查計數器是否達到了最大點擊次數,如果它已經禁用了按鈕,否則增加計數器。

0

優化的邏輯

List<Quiz> lstQuiz = new List<Quiz>(); 
    int limit = 5; 
    protected void btn_Click(object sender, EventArgs e) 
    { 
     btn.Enabled = (lstQuiz.Count >= limit)?false:true; 
     lstQuiz.Add(new Quiz()); 
    }