我做了一個問答遊戲,我希望點擊時按鈕上的文字爲粗體。此代碼的工作:按鈕文字加粗點擊
button7.Font = new Font(button7.Font.Name, button7.Font.Size, FontStyle.Bold);
我遇到的問題是,當我點擊「下一步」按鈕,進入下一個問題,文本是即使答案還沒有被點擊還是大膽。我該如何解決這個問題?
我做了一個問答遊戲,我希望點擊時按鈕上的文字爲粗體。此代碼的工作:按鈕文字加粗點擊
button7.Font = new Font(button7.Font.Name, button7.Font.Size, FontStyle.Bold);
我遇到的問題是,當我點擊「下一步」按鈕,進入下一個問題,文本是即使答案還沒有被點擊還是大膽。我該如何解決這個問題?
只是這樣做「下一步」按鈕,點擊
button7.Font = new Font(button7.Font.Name, button7.Font.Size, FontStyle.Regular);
我從來沒有這樣想過。謝謝。不過,我還有一個稍微相關的問題。編輯我的問題 – user2141272 2013-03-09 19:18:00
您編輯的問題部分與您的主要問題不相似,應該作爲不同的問題發佈。你的主要問題是關於如何重新獲得按鈕字體,而較新的有一些很好的邏輯構建。如果你得到你主要問題的答案,你可以選擇其中一個答案,並可以提出另一個問題。 – 2013-03-09 19:44:12
是的,抱歉,這樣做是有道理的。謝謝你的提示。 – user2141272 2013-03-09 19:56:13
當您單擊下一步,您需要取消大膽的一切。下面的代碼應該有幫助(它也包括一個可能更清晰的粗體實現)。
// usage
foreach(var button in GetAnswerButtons())
{
button.Click += OnClickToBold;
button.Click += OnClickSetPropertyBasedOnCorrectness;
}
nextButton.Click += NextClick;
// implementations
private void OnClickToBold(object sender, EventArgs e)
{
var button = sender as Button;
if (button == null) return;
button.Font = new Font(button.Font.Name, button.Font.Size, FontStyle.Bold);
}
private void OnClickSetPropertyBasedOnCorrectness(object sender, EventArgs e)
{
var button = sender as Button;
if (button == null) return;
button.WhateverProperty = IsCorrectAnswer(button)
? valueWhenCorrect
: valueWhenWrong;
}
private void NextClick(object sender, EventArgs e)
{
foreach(var button in GetAnswerButtons())
{
button.Font = new Font(button.Font.Name, button.Font.Size, FontStyle.Regular);
UnsetPropertyBasedOnCorrectness(button);
}
}
private IEnumerable<Button> GetAnswerButtons() { ... }
private void UnsetPropertyBasedOnCorrectness(Button b) { ... }
您是否可以在點擊「下一步」時設置按鈕的字體? – duDE 2013-03-09 19:08:51
@duDE我從來沒有這樣想過。謝謝。不過,我還有一個稍微相關的問題。編輯我的問題 – user2141272 2013-03-09 19:19:02
這是相同的邏輯 - 你用button7.Background = Color.Yellow改變背景;並將其設置回「Next」! BTW看看Austin Salonen的答案:他給了你一個完美的例子! – duDE 2013-03-09 19:27:42