[]

C# // MessageBox kapanmıyor

MessageBox.Show("Seçili raf dolu !", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Warning);
if (MessageBox.Show("Seçili raf dolu !", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Warning) == DialogResult.OK)
{
this.Close();
}

bluetooth haberleşme yapıyorum, butona tıkladığımda seçtiğim rafa ürün bırakacak. dolu bir rafı seçtiğimde butona bastığımda uyarı veriyor. Tamam'a tıklıyorum, aynı uyarı yeniden çıkıyor.
tamam dediğimde kapanan, aynı haltı yemediğim takdirde bir daha çıkmayan messagebox istirham ediyorum.
teşekkürler..

 
2 kere çıkma nedeni messagebox.show'u hem ilk satırda hem if içerisinde kullanıyorsunuz. ilk satıra gerek yok.


  • gsgsgsgsgsgsgsgs  (21.01.17 20:30:25) 
iki kere değil sürekli çıkıyor, tamam'a tıkladığımda o kapanıyor yerine aynısı geliyor. her seferinde böyle.


  • attirmayin makedonun kafasini  (21.01.17 20:33:12) 
buradan ne yapmaya çalıştığın ve hatanın ne olabileceği anlaşılamıyor.


  • bay meraklı  (21.01.17 21:46:50) 
Bir event içerisinde yazdıysanız bunu o eventi sürekli tetikleyen bir şey olabilir.Kodun ilgili kısmının tamamını atarsanız yardımcı olmaya çalışabilirim.
Başka bir öneri ise breakpoint atarak orayı takip etmeniz.Çünkü ne olursa olsun OK'a filan bastığınızda zaten kapanır mesaj kutusu.

  • bu_ne_bicim_nick  (21.01.17 22:11:05) 
sanırım butona tıkladığımda açılan seri portu kapatmadığım için sürekli mesajı göndermeye çalışıyor ve mesaj göndermek de yukarıda bahsettiğim "aynı haltı yemek" oluyor.
seri portu kapattım message box ile, henüz çalıştıramadım çünkü bluetooth'um çalışmıyor, yarın kontrol edicem sorun devam ederse yine yazarım.

yok ille de kod, ille de kod isterük derseniz, bir kısmını göndereyim:

private void button7_Click(object sender, EventArgs e)
{
try
{
serialPort1.PortName = comboBox1.Text;
serialPort1.BaudRate = Convert.ToInt16(comboBox2.Text);
serialPort1.Open();
}
catch (Exception)
{

}
/////////////////////////
basadon: //////////////

if (serialPort1.IsOpen == false)
{
serialPort1.Open();
}
if (serialPort1.IsOpen)
{
label4.Text = "Bağlandı.";
button7.BackgroundImage = Image.FromFile("bmavi.png");
if (secilibuton == 1 && albirak == 1)
{
if (raf1 == 0)
{
MessageBox.Show("Seçili raf boş !", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Warning);
serialPort1.Close();
goto basadon;
}
serialPort1.Write("1");
serialPort1.Close();
button1.BackgroundImage = Image.FromFile("boş.png");
this.Controls.Add(button1);
raf1 = 0;
goto basadon;
}
devamı var ama aynı şeylerin tekrarı...
  • attirmayin makedonun kafasini  (21.01.17 22:45:57) 
basadon - goto basadon'ler arasında sonsuz döngüye giriyor. raf1 değeri ne gelirse gelsin 0'a eşitlenip başa dönüyor, 0 olduktan sonra da her seferinde if (raf1== 0) koşulunu sağlayıp mesaj kutusunu çıkarıyor, tekrar başa dönüyor raf1 değeri hala 0 olduğu için yine girip mesaj kutusunu çıkarıyor şeklinde devam ediyor. Değişkenlerin neyi ifade ettiğini bilmeden çözüm önerisi sunmak zor, fakat uyarı çıktıktan sonra albirak veya secilibuton değerlerinden birini değiştirirseniz üstteki if içerisine girmez. o ikisi illa 1 olmak zorundaysa yukarıda bi boolean değeri false tanımlayıp if (raf1 == 0) koşulu içerisinde true yapabilirsiniz, secilibuton ve albirak kontrolünün yanına 3. koşul olarak da bu boolean değerin false olmasını ekleyebilirsiniz.


  • gsgsgsgsgsgsgsgs  (22.01.17 00:18:14) 
aslında messagebox ikide bir çıkınca ben basadon falan eklemiştim.
öyle kaldı sonra da :)

  • attirmayin makedonun kafasini  (22.01.17 00:27:27) 
basadon'leri sildim.

if (raf1 == 1)
{
MessageBox.Show("Seçili raf dolu !", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Warning);
button7.Enabled = false;
}

yazdım çözdüm.
  • attirmayin makedonun kafasini  (22.01.17 18:03:31) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.