Сброс кнопки в windows form C#
Привет,
Я делаю крестики-нолики с очень простым кодом,но не могу придумать способ сбросить кнопки. Нужна помощь в сбросе btn1-9
Пожалуйста, помогите!
Вот мой код до сих пор:
public partial class Form1 : Form { //deklarera variabler bool omgang = true; int antalomgangar = 0, X_segrar = 0, O_segrar = 0, oavgjortx = 0; string vinnare = ""; bool omdetfinnsvinnare = false; public Form1() { InitializeComponent(); } private void button2_Click(object sender, EventArgs e) { //Avsluta programmet när man trycker på denna knapp Application.Exit(); } private void button_click(object sender, EventArgs e) { } private void kontrolleravinnare() {//variabler //kontrollera horisontellt if ((btn1.Text == btn2.Text) && (btn2.Text == btn3.Text) && (!btn1.Enabled)) { omdetfinnsvinnare = true; } else if ((btn4.Text == btn5.Text) && (btn5.Text == btn6.Text)&& (!btn4.Enabled)) omdetfinnsvinnare = true; else if ((btn7.Text == btn8.Text) && (btn8.Text == btn9.Text) && (!btn7.Enabled)) { omdetfinnsvinnare = true; } //kontrollera vertikalt else if ((btn1.Text == btn4.Text) && (btn4.Text == btn7.Text) && (!btn1.Enabled)) { omdetfinnsvinnare = true; } else if ((btn2.Text == btn5.Text) && (btn5.Text == btn8.Text) && (!btn2.Enabled)) omdetfinnsvinnare = true; else if ((btn3.Text == btn6.Text) && (btn6.Text == btn9.Text) && (!btn3.Enabled)) { omdetfinnsvinnare = true; } //kontrollera diagonalt else if ((btn1.Text == btn5.Text) && (btn5.Text == btn9.Text) && (!btn1.Enabled)) { omdetfinnsvinnare = true; } else if ((btn3.Text == btn5.Text) && (btn5.Text == btn7.Text) && (!btn7.Enabled)) omdetfinnsvinnare = true; if (omdetfinnsvinnare) { string vinnare = ""; if (omgang) { vinnare = "O"; O_segrar++; O_win_count.Text = O_segrar.ToString(); Resetgame(); } else { vinnare = "X"; X_segrar++; X_win_count.Text = X_segrar.ToString(); Resetgame(); } MessageBox.Show(vinnare + " är vinnaren!", "Vi har en vinnare!"); } //om det blir oavgjort else { if (antalomgangar == 9) { MessageBox.Show(vinnare + "Fuuaark!", "Det blev oavgjort!"); oavgjortx++; draw_count.Text = oavgjortx.ToString(); Resetgame(); } } } //metod för att resetta public void Resetgame() { btn1.Enabled = true; btn2.Enabled = true; btn3.Enabled = true; btn4.Enabled = true; btn5.Enabled = true; btn6.Enabled = true; btn7.Enabled = true; btn8.Enabled = true; btn9.Enabled = true; btn1.Text = ""; btn2.Text = ""; btn3.Text = ""; btn4.Text = ""; btn5.Text = ""; btn6.Text = ""; btn7.Text = ""; btn8.Text = ""; btn9.Text = ""; } //metod för att visa vems tur public void denstur() { if(omgang != true) { vemstur.Text = "O TUR"; } else { vemstur.Text = "X TUR"; } } private void aterstall_Click(object sender, EventArgs e) { } private void vemstur_Click(object sender, EventArgs e) { } private void label1_Click(object sender, EventArgs e) { } private void btn_startaom_Click(object sender, EventArgs e) { } private void btn1_Click(object sender, EventArgs e) { //X och O ska visa sig när man trycker på knapparna if (omgang) btn1.Text = "X"; else btn1.Text = "O"; btn1.Enabled = false; //Gör så att det är en annans tur omgang = !omgang; antalomgangar++; kontrolleravinnare(); denstur(); } private void btn2_Click(object sender, EventArgs e) { //X och O ska visa sig när man trycker på knapparna if (omgang) btn2.Text = "X"; else btn2.Text = "O"; btn2.Enabled = false; //Gör så att det är en annans tur omgang = !omgang; antalomgangar++; kontrolleravinnare(); denstur(); } private void btn3_Click(object sender, EventArgs e) //X och O ska visa sig när man trycker på knapparna { if (omgang) btn3.Text = "X"; else btn3.Text = "O"; btn3.Enabled = false; //Gör så att det är en annans tur omgang = !omgang; antalomgangar++; kontrolleravinnare(); denstur(); } private void btn4_Click(object sender, EventArgs e) { //X och O ska visa sig när man trycker på knapparna if (omgang) btn4.Text = "X"; else btn4.Text = "O"; btn4.Enabled = false; //Gör så att det är en annans tur omgang = !omgang; antalomgangar++; kontrolleravinnare(); denstur(); } private void btn5_Click(object sender, EventArgs e) {//X och O ska visa sig när man trycker på knapparna if (omgang) btn5.Text = "X"; else btn5.Text = "O"; btn5.Enabled = false; //Gör så att det är en annans tur omgang = !omgang; antalomgangar++; kontrolleravinnare(); denstur(); } private void btn6_Click(object sender, EventArgs e) {//X och O ska visa sig när man trycker på knapparna if (omgang) btn6.Text = "X"; else btn6.Text = "O"; btn6.Enabled = false; //Gör så att det är en annans tur omgang = !omgang; antalomgangar++; kontrolleravinnare(); denstur(); } private void btn7_Click(object sender, EventArgs e) {//X och O ska visa sig när man trycker på knapparna if (omgang) btn7.Text = "X"; else btn7.Text = "O"; btn7.Enabled = false; //Gör så att det är en annans tur omgang = !omgang; antalomgangar++; kontrolleravinnare(); denstur(); } private void btn8_Click(object sender, EventArgs e) {//X och O ska visa sig när man trycker på knapparna if (omgang) btn8.Text = "X"; else btn8.Text = "O"; btn8.Enabled = false; //Gör så att det är en annans tur omgang = !omgang; antalomgangar++; kontrolleravinnare(); denstur(); } private void btn9_Click(object sender, EventArgs e) {//X och O ska visa sig när man trycker på knapparna if (omgang) btn9.Text = "X"; else btn9.Text = "O"; btn9.Enabled = false; //Gör så att det är en annans tur omgang = !omgang; antalomgangar++; kontrolleravinnare(); denstur(); } } }
Извините за комментарии на шведском языке и некоторые слова тоже.
Что я уже пробовал:
Я уже пробовал это:
btn1.Включен = истина;
btn2.Включен = истина;
btn3.Включен = истина;
btn4.Включен = истина;
btn5.Включен = истина;
btn6.Включен = истина;
btn7.Включен = истина;
btn8.Включен = истина;
btn9.Включен = истина;
btn1.Текст = "";
btn2.Текст = "";
btn3.Текст = "";
btn4.Текст = "";
btn5.Текст = "";
btn6.Текст = "";
btn7.Текст = "";
btn8.Текст = "";
btn9.Текст = "";
Но это не сработало. Знаки X и O исчезли, но они не сбросились, поэтому после нажатия другой кнопки он просто говорит, что победитель-это тот, кто когда-либо поворачивал его.
Richard MacCutchan
Вы можете удалить весь этот дубликат кода и просто иметь один обработчик для всех кнопок. Обработчик получит ссылку на фактическую нажатую кнопку. Это должно несколько упростить отладку.