C# WindowsForm Çekiliş Uygulaması

C# WindowsForm Çekiliş Uygulaması

Daha fazlası için: gorselprogramlama.com

Merhaba ben Abdurrahman ÖNDER. Bu uygulamamızın amacı, dışarıdan girilen hediye ve katılımcıya göre rastgele çekiliş gerçekleştirmektir.

Tasarımımızı aşağıdaki gibi yapalım.

IMG_20201203_020434

Katılımcı Ekleme Butonu Click_Event yazalım.

[code language=”csharp”]
private void btnKEkle_Click(object sender, EventArgs e)
{
if (txtAd.Text.Trim() != "" && txtSoyad.Text.Trim() != "" && txtTel.Text.Trim() != "")
{
bool add_state = true;
foreach (string s in lstKatilim.Items)
{
string tel = s.Split(‘ ‘)[2].ToString();
if (tel == txtTel.Text.Trim())
{
add_state = false;
break;
}
}
if (add_state)
{
string ad = txtAd.Text.Trim();
string soyad = txtSoyad.Text.Trim();
string no = txtTel.Text.Trim();
lstKatilim.Items.Add(ad + " " + soyad + " " + no);
}
else
{
MessageBox.Show("Numara tekrarı algılandı! Tekrar deneyiniz!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
txtAd.ResetText();
txtSoyad.ResetText();
txtTel.ResetText();
txtAd.Focus();
}
}
[/code]

Hediye Ekleme Butonu Click_Event yazalım.

 

[code language=”csharp”]
private void btnHEKle_Click(object sender, EventArgs e)
{
if (txtHediyeAd.Text.Trim() != "" && txtHediyeTur.Text.Trim() != "" && txtHediyeMarka.Text.Trim() != "" && txtHediyeAdet.Text.Trim() != "")
{
bool add_state = true;
string ad = txtHediyeAd.Text.Trim();
string tur = txtHediyeTur.Text.Trim();
string marka = txtHediyeMarka.Text.Trim();
int adet = Convert.ToInt32(txtHediyeAdet.Text.Trim());
foreach (string s in lstHediye.Items)
{
if (s == ad + " " + tur + " " + marka + " " + adet.ToString())
{
add_state = false;
break;
}
}
if (add_state)
{
for (int i = 0; i < adet; i++)
lstHediye.Items.Add(ad + " " + tur + " " + marka + " ");
}
else
{
MessageBox.Show("Aynı Hediye Sistemde Mevcut! Tekrar Deneyiniz!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
txtHediyeAd.ResetText();
txtHediyeMarka.ResetText();
txtHediyeTur.ResetText();
txtHediyeAdet.ResetText();
txtHediyeAd.Focus();
}
}
[/code]

Çekiliş Başlatma Butonu Click_Event yazalım.

 

[code language=”csharp”]
private void btnBaslat_Click(object sender, EventArgs e)
{
int hediyeSayisi = lstHediye.Items.Count;
if (lstKatilim.Items.Count != 0 && lstHediye.Items.Count != 0)
{
lstSonuc.Items.Clear();
Random rnd = new Random();
Random rnd2 = new Random();
for (int i = 0; i < hediyeSayisi; i++)
{
if (lstKatilim.Items.Count != 0)
{
int hediyeIndex = rnd.Next(0, lstHediye.Items.Count – 1);
int katilimIndex = rnd.Next(0, lstKatilim.Items.Count – 1);
lstSonuc.Items.Add(lstHediye.Items[hediyeIndex] + " –> " + lstKatilim.Items[katilimIndex]);
lstHediye.Items.RemoveAt(hediyeIndex);
lstKatilim.Items.RemoveAt(katilimIndex);
}
}
}
}
[/code]

Telefon ve Adet textboxlarının sadece rakam alması için

 

[code language=”csharp”]
private void txtTel_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar);
}
[/code]

 

Resetleme Butonu Click_Event yazalım.

[code language=”csharp”]
private void btnReset_Click(object sender, EventArgs e)
{
lstKatilim.Items.Clear();
lstSonuc.Items.Clear();
lstHediye.Items.Clear();
}
[/code]

Projeyi indirmek için buraya tıklayınız. Ödev ve Fikir konularında mail atabilirsiniz.

Mail Adresim abdurrahman.onder@ogr.sakarya.edu.tr

Sağlıkla, mutlulukla…

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir