重置Windows窗体中的按钮C# [英] Resetting a button in windows form C#

查看:118
本文介绍了重置Windows窗体中的按钮C#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,

我正在使用非常简单的代码制作一个tic tac toe但我无法想出一种重置按钮的方法。需要帮助重置btn1-9

请帮助!

到目前为止我的代码:



< pre lang =c#> public partial class Form1:表格
{
// deklarera variabler
bool omgang = true ;
int antalomgangar = 0 ,X_segrar = 0 ,O_segrar = 0 ,oavgjortx = 0 ;
string vinnare = ;
bool omdetfinnsvinnare = false ;

public Form1()
{
InitializeComponent();
}


私有 void button2_Click(< span class =code-keyword> object sender,EventArgs e)
{
// Avslutaprogrammetnärumantryckerpådennaknapp
Application.Exit();
}


私有 void button_click(< span class =code-keyword> 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
< span class =code-keyword> 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
< span class =code-keyword> 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();
}
其他
{
vinnare = X;
X_segrar ++;
X_win_count.Text = X_segrar.ToString();
Resetgame();
}
MessageBox.Show(vinnare + ärvinnaren!,< span class =code-string> 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();
}
}
}
// metodförtitresetta
public void Resetgame()
{
bnn1 .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örget 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签证signärumantryckerpåknapparna
if ( omgang)
btn1.Text = X;
else
btn1.Text = O 的;
btn1.Enabled = false ;
// Görsåalldetärnenannans tur
omgang =!omgang ;

antalomgangar ++;

kontrolleravinnare();
denstur();

}

private void btn2_Click(< span class =code-keyword> object
sender,EventArgs e)
{
// X och O ska签证signärumantryckeråknapparna
if (omgang)
btn2.Text = < span class =code-string> X;
else
btn2.Text = O 的;
btn2.Enabled = false ;
// Görsåalldetärnenannans tur
omgang =!omgang ;

antalomgangar ++;

kontrolleravinnare();
denstur();
}

private void btn3_Click( object <> span sender,EventArgs e)
// X och O ska visa signärumantryckeråknapparna
{
if (omgang)
btn3.Text = X;
else
btn3.Text = O 的;
btn3.Enabled = false ;
// Görsåalldetärnenannans tur
omgang =!omgang ;

antalomgangar ++;

kontrolleravinnare();
denstur();
}

private void btn4_Click( object sender,EventArgs e)
{
// X och O ska签证signärumantryckerpåknapparna
if (omgang)
btn4.Text = X;
else
btn4.Text = O 的;
btn4.Enabled = false ;
// Görsåalldetärnenannans tur
omgang =!omgang ;

antalomgangar ++;

kontrolleravinnare();
denstur();
}

private void btn5_Click( object sender,EventArgs e)
{ // X och O ska签证signärumantryckerpåknapparna
if (omgang)
btn5.Text = X;
else
btn5.Text = O 的;
btn5.Enabled = false ;
// Görsåalldetärnenannans tur
omgang =!omgang ;

antalomgangar ++;

kontrolleravinnare();
denstur();
}

private void btn6_Click( object sender,EventArgs e)
{ // X och O ska签证signärumantryckerpåknapparna
if (omgang)
btn6.Text = X;
else
btn6.Text = O 的;
btn6.Enabled = false ;
// Görsåalldetärnenannans tur
omgang =!omgang ;

antalomgangar ++;

kontrolleravinnare();
denstur();
}

private void btn7_Click( object sender,EventArgs e)
{ // X och O ska签证signärumantryckeråknapparna
if (omgang)
btn7.Text = X;
else
btn7.Text = O 的;
btn7.Enabled = false ;
// Görsåalldetärnenannans tur
omgang =!omgang ;

antalomgangar ++;

kontrolleravinnare();
denstur();
}

private void btn8_Click( object sender,EventArgs e)
{ // X och O ska签证signärumantryckerpåknapparna
if (omgang)
btn8.Text = X;
else
btn8.Text = O 的;
btn8.Enabled = false ;
// Görsåalldetärnenannans tur
omgang =!omgang ;

antalomgangar ++;

kontrolleravinnare();
denstur();
}

private void btn9_Click( object sender,EventArgs e)
{ // X och O ska签证signärumantryckeråknapparna
if (omgang)
btn9.Text = X;
else
btn9.Text = O 的;
btn9.Enabled = false ;
// Görsåalldetärnenannans tur
omgang =!omgang ;

antalomgangar ++;

kontrolleravinnare();
denstur();
}
}
}





我很抱歉评论在瑞典语和一些单词也是如此。



我尝试过:



我试过这个:

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 =;

Bu这没用。 X和O标志消失了,但它们没有重置,所以在按下另一个按钮之后,它只是说赢家就是这样。

解决方案

 private void button1_Click(object sender,EventArgs e)
{
RecursiveClearTextBoxes(this.Controls);
}

private void RecursiveClearTextBoxes(Control.ControlCollection cc)
{
foreach(cc中的控制ctrl)
{
TextBox tb = ctrl as TextBox;
if(tb!= null)
tb.Clear();
else
RecursiveClearTextBoxes(ctrl.Controls);
}
}


Hello,
I'm making a tic tac toe with very simple code but i can't come up with a way to reset the buttons. Need help with resetting the btn1-9
Please help!
Heres my code so far:

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();
        }
    }
}



I'm sorry for the comments are in Swedish and some Words aswell.

What I have tried:

I have tried this:
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 = "";
But that didn't work. X and O signs dissapeared but they didnt reset so after pressing Another button it just says that the Winner is which ever turn it was.

解决方案

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);
}
}


这篇关于重置Windows窗体中的按钮C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆