重置Windows窗体中的按钮C# [英] Resetting a button in windows form 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屋!