2013-03-09 4 views
0

Я сделал игру викторины, и я хочу, чтобы текст на кнопке был полужирным, когда щелкнули. Этот код работает:Кнопка текст выделен жирным шрифтом по щелчку

button7.Font = new Font(button7.Font.Name, button7.Font.Size, FontStyle.Bold); 

Проблема у меня, когда я нажимаю на кнопку «Далее», чтобы перейти к следующему вопросу, текст остается жирным шрифтом, даже если ответ не была нажата. Как я могу это решить?

+1

Вы можете просто установить шрифт кнопки при нажатии на «Далее»? – duDE

+0

@duDE Я так и не думал об этом. Спасибо. У меня есть еще одна слегка связанная проблема; отредактировал мой вопрос – user2141272

+0

Это та же логика - вы меняете фон с помощью кнопки7.Background = Color.Yellow; и установите его на «Далее»! BTW посмотрим на ответ Остина Салонен: он дал вам отличный пример! – duDE

ответ

1

Просто сделай это на кнопку «Далее» нажмите

button7.Font = new Font(button7.Font.Name, button7.Font.Size, FontStyle.Regular); 
+0

Я так и не подумал об этом. Спасибо. У меня есть еще одна слегка связанная проблема; отредактировал мой вопрос – user2141272

+0

Ваша отредактированная часть вопроса не похожа на ваш главный вопрос, она должна быть размещена как другой вопрос. Ваш главный вопрос - о том, как восстановить шрифт кнопки, в то время как у нового есть некоторая хорошая логика для сборки. Если вы получите ответ на свой основной вопрос, вы можете выбрать один из ответов и задать другой вопрос. –

+0

Да, извините, имеет смысл сделать так. Спасибо за совет. – user2141272

1

Вам нужно не-смелой все при нажатии кнопки Далее. Приведенный ниже код должен помочь (он также включает в себя, возможно, более чистую реализацию смелейшего действия).

// 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) { ... } 
Смежные вопросы