2016-04-07 11 views
0

Bir ödev için txtCityInput ve txtStateInput metin kutusuna adında bir şeyin girildiğinden emin olmak için bir WPF C# Formu oluşturmam gerekiyor.Metin kutusunda Boş metin olup olmadığını kontrol etmek için/yapılır mu?

Bunu bir süre denedim, ancak sonsuz döngü oluşturur (MessageBox'ta).

private void txtCityInput_Leave(object sender, EventArgs e) 
    { 
     do 
     { 
      txtCityInput.Focus(); 
      MessageBox.Show("Enter a City"); 
     } 

     while (txtCityInput.Text.Length == 0); 
    } 

Yine ben deyim kullanıcının bu metin kutularına "bir şey" girdiğini kontrol etmek iken/a Do Bildirimi veya Do ya da kullanmak zorunda.

private void txtCityInput_Leave(object sender, EventArgs e) 
{ 
    if (txtCityInput.Text.Length == 0) 
    { 
     txtCityInput.Focus(); 
     MessageBox.Show("Enter a City"); 
    } 
} 

olay o metin kutusu bırakır yine her tetiklediği edilmelidir:

+0

Kullanıcı, metin kutusuna bir şey yazabilme şansı bulur mu? Ya da gördüğü tek şey bir mesaj kutusu mu? –

+3

err, neden bir döngü istiyorsun? Bu olay, metin kutusu odağı kaybolduğunda tetiklenir, bu yüzden her seferinde. –

+0

Bir "do' /' while "kullanmanız gereken ödevin parçası mı? Öyleyse, WPF'yi kullandığınız ödevin bir parçası mı yoksa bir konsol uygulaması kullanmak mı istendi? –

cevap

2

Bu durum için do-while döngüsünü kullanmanın tek yolu, bir koşul daha eklenmesidir.

private void txtCityInput_Leave(object sender, EventArgs e) 
{ 
    do 
    { 
     if (txtCityInput.Text.Length == 0) 
     { 
      txtCityInput.Focus(); 
      MessageBox.Show("Enter a City"); 
     } 
     else 
     { 
      break; 
     } 
    } 
    while (!txtCityInput.Focused); 
} 
+1

Bu fikri beğendim, ama görürseniz, döngü yok ;-) –

+0

Haklısınız :) –

+0

Orkun aslında bu çözüm ilk kez çalışıyor, ancak bir şey girdikten sonra mesaj kutusunu atar. –

1

Sadece yapmak gerekir.

+0

Dan bu çözüm işe yarıyor, ancak eğitmen kesinlikle bir "Do Loop" veya "Do/While Loop) kullanmamı istiyor. –

+1

@NateE. Bu mümkün değil, siz gerçekten kullanıcıyı (döngü alarak) –

+0

belki de talimatları yanlış anladım, ondan açıklama almayı denedim ama bir yanıtın eksikliğinden dolayı bu şekilde yapmaya çalışıyordum. İlk yapmamda tarif ettiğin yöntemi kullandım. yukarıda ve iyi çalışıyor –

İlgili konular