Member 13134706 Ответов: 1

Сброс кнопки в 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

Вы можете удалить весь этот дубликат кода и просто иметь один обработчик для всех кнопок. Обработчик получит ссылку на фактическую нажатую кнопку. Это должно несколько упростить отладку.

1 Ответов

Рейтинг:
2

rahulkumar013

private void button1_Click(object sender, EventArgs e)
{
RecursiveClearTextBoxes(this.Controls);
}
 
private void RecursiveClearTextBoxes(Control.ControlCollection cc)
{
foreach (Control ctrl in cc)
{
TextBox tb = ctrl as TextBox;
if (tb != null)
tb.Clear();
else
RecursiveClearTextBoxes(ctrl.Controls);
}
}