arkadaşlar event ile 8x8'lik satranç tahtası oluşturuyorum. oluşan bu 64 butondan herhangi birisine basınca atın oynayabileceği butonların backcolor ı değişiyor. ancak başka butona bastığımızda bu backcolor eski halinegelmiyor. bunu nasıl yapabilirim?
eventtan önce "Button onceki;" kodunu kullandım ve event içerisinde aşağıdaki kodu kullanınca butonun eski textini gösteriyor. bana eski backcolor lazım. anlıcağınız üzere buton backcolorları 2 farklı renkte ilerliyor bu yüzden kafa karıştı:
eski texti veren kod:
Button eski = (Button)sender;
eski.Text = eski.Tag.ToString();
onceki = eski;
teşekkürler..
Event'tan önceki değeri alma (C#)
4
●650
- 05-06-2010, 15:50:40Üyeliği durduruldu
- 06-06-2010, 01:16:59Color eskiclr;
buttonun rengini değiştirdiğin yerde değiştirmeden
eskiclr = botton1.backcolor;
yaparsın sonra eski haline geleceği zaman
botton1.backcolor = eskiclr ;
vst acmadım denersen buyuk ihtimal ile olur kanısındayım - 06-06-2010, 01:51:36Üyeliği durduruldubu şekilde bir dönüştürme hatası alıyorum
Error 1 Cannot implicitly convert type 'string' to 'System.Drawing.Color'
- 06-06-2010, 23:26:11yazdığın kodun tamamını görebilirsem eğer bişi diyebilirim nerde nasıl yapıyorsun
- 07-06-2010, 00:11:52Üyeliği durdurulduproje linki ve kodlar bu şekilde..
link: http://www.speedyshare.com/files/228..._6_Satranc.zip
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Collections; namespace _6_Satranc { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.ClientSize = new Size(400,400); int sayi = 0; for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { Button kare = new Button(); kare.Location = new Point(j * 50, i * 50); kare.Size = new Size(50,50); kare.Tag = (++sayi).ToString(); kare.BackColor = ((i + j) % 2 == 0) ? Color.Gray : Color.White; this.Controls.Add(kare); kare.Click += new EventHandler(kare_Click); kare.Text = kare.Tag.ToString(); } } } Button onceki; void kare_Click(object sender, EventArgs e) { Button goster = (Button)sender; int at_art6, at_art10, at_art15, at_art17, at_eksilt6, at_eksilt10, at_eksilt15, at_eksilt17; at_art6 = int.Parse(goster.Text) + 6; at_art10 = int.Parse(goster.Text) + 10; at_art15 = int.Parse(goster.Text) + 15; at_art17 = int.Parse(goster.Text) + 17; at_eksilt6 = int.Parse(goster.Text) - 6; at_eksilt10 = int.Parse(goster.Text) - 10; at_eksilt15 = int.Parse(goster.Text) - 15; at_eksilt17 = int.Parse(goster.Text) - 17; foreach (Button item in this.Controls) { if (item.Text == at_art6.ToString() || item.Text == at_art10.ToString() || item.Text == at_art15.ToString() || item.Text == at_art17.ToString()) { item.BackColor = Color.Aqua; item.Text = "Geri"; } else if (item.Text == at_eksilt6.ToString() || item.Text == at_eksilt10.ToString() || item.Text == at_eksilt15.ToString() || item.Text == at_eksilt17.ToString()) { item.BackColor = Color.Bisque; item.Text = "İleri"; } } //Button goster = (Button)sender; //goster.Text = goster.Tag.ToString(); //onceki = goster; } } }