C# texbox3.text hatası

ocetinkaya

Decapat
Katılım
13 Şubat 2023
Mesajlar
29
Daha fazla  
Cinsiyet
Erkek
Merhaba,
Bir form oluşturdum formda texbox3.tex var buraya sadece rakam yazılsın istiyorum

Kod:
 private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
 {
 if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8 && textBox3.Text.IndexOf(",") !=-1)
 {
 e.Handled = true;
 return;
 }

Bu şekilde bir kod buldum.
Kod çalışıyor harf yazılarına basınca yazmıyor fakat harf tuşuna basınca direk uyarı vermesini nasıl sağlarım?
Hani şifre yazarken Caps Lock açık uyarısı veriyor ya aynı onun gibi de olabilir.

Teşekkürler.
 
Son düzenleyen: Moderatör:
Merhaba,
Bir form oluşturdum formda texbox3.tex var buraya sadece rakam yazılsın istiyorum.
Kod:
 private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
 {
 if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8 && textBox3.Text.IndexOf(",") !=-1)
 {
 e.Handled = true;
 return;
 }

Bu şekilde bir kod buldum.
Kod çalışıyor harf yazılarına basınca yazmıyor fakat harf tuşuna basınca direk uyarı vermesini nasıl sağlarım?
Hani şifre yazarken Caps Lock açık uyarısı veriyor ya aynı onun gibi de olabilir.

Teşekkürler.

Try-catch kullanın hocam harfe basarsa uyarı mesajı verdirirsiniz.

Merhaba,
Bir form oluşturdum formda texbox3.tex var buraya sadece rakam yazılsın istiyorum

Kod:
 private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
 {
 if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8 && textBox3.Text.IndexOf(",") !=-1)
 {
 e.Handled = true;
 return;
 }

Bu şekilde bir kod buldum.
Kod çalışıyor harf yazılarına basınca yazmıyor fakat harf tuşuna basınca direk uyarı vermesini nasıl sağlarım?
Hani şifre yazarken Caps Lock açık uyarısı veriyor ya aynı onun gibi de olabilir.

Teşekkürler.
örneğin ;
C#:
 private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
        {
     try{
            if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8 && textBox3.Text.IndexOf(",") !=-1)
            {
                e.Handled = true;
                return;
            }
     }
     catch
     {
         MessageBox.Show("Sadece sayısal veri girebilirsiniz!", "SİSTEM" ,MessageBoxButtons.OK);
     }
 
Capslock kontrolünü:
Control.IsKeyLocked(Keys.CapsLock) bu şekilde yapıyorduk ama normal harf tuşlarında çalışmıyor sanırım bu.

try-catch ile kontrol deneyebilirsin.
 
Son düzenleyen: Moderatör:
Try-catch kullanın hocam harfe basarsa uyarı mesajı verdirirsiniz.


örneğin ;
C#:
 private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
        {
     try{
            if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8 && textBox3.Text.IndexOf(",") !=-1)
            {
                e.Handled = true;
                return;
            }
     }
     catch
     {
         MessageBox.Show("Sadece sayısal veri girebilirsiniz!", "SİSTEM" ,MessageBoxButtons.OK);
     }
Hocam çok teşekkür ederim bu işlere yeni başladığımdan bunu bilmiyordum, akşam eve gittiğimde deneme yapacağım teşekkürler.
 
Son düzenleyen: Moderatör:
Merhaba,
Bir form oluşturdum formda texbox3.tex var buraya sadece rakam yazılsın istiyorum

Kod:
 private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
 {
 if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8 && textBox3.Text.IndexOf(",") !=-1)
 {
 e.Handled = true;
 return;
 }

Bu şekilde bir kod buldum.
Kod çalışıyor harf yazılarına basınca yazmıyor fakat harf tuşuna basınca direk uyarı vermesini nasıl sağlarım?
Hani şifre yazarken Caps Lock açık uyarısı veriyor ya aynı onun gibi de olabilir.

Teşekkürler.

Hocam deneyin olmaz ise tekrar yazın başka çözüm yazalım
 
Try-catch ile hatayı yakalamanız zor olabilir. Çünü hata üretecek bir kod bloğu söz konusu değil. Sayı ondalıklı girilmek istenebilir. O yüzden sadece koşul geçerli olmadığı durumlarda Label'e bilgi metni göndermeniz gerekir.

Textbox key press Event'ine bu kodu girmeniz yeterli. Tam olarak yapmak istediğiniz işlem bu olmalı;

C#:
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.')){
                e.Handled = true;
                if (label1.Visible != false){
                    label1.Visible = false;
                }
            }else{
                if (label1.Visible != true){
                    label1.Visible = true;
                }
                label1.Text = "Lütfen sayılsal değer giriniz.";
            }
            if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1)){
                e.Handled = true;
                if (label1.Visible != false){
                    label1.Visible = false;
                }
            }else{
                if (label1.Visible != true){
                    label1.Visible = true;
                }
                label1.Text = "Lütfen sayılsal değer giriniz.";
            }

Ek olarak key press Event'ini internetten kopyalıyorsanız çalışmaz. Event'i kendiniz üretmeniz gerekiyor.
 
Son düzenleme:

Selam,
Benim bundan önce çözmem gereken daha önemli sorun var gibi geldi.

Kod:
private void button1_Click(object sender, EventArgs e)
        {
            int en = Convert.ToInt32(textBox1.Text);
            int boy = Convert.ToInt32(textBox2.Text);
            float kal =Convert.ToSingle(textBox3.Text);
            int adet =Convert.ToInt32(textBox4.Text);
           
           
            baglanti.Open();
           
         
            SqlCommand komut = new SqlCommand("insert into stok values(@en,@boy,@kalinlik,@kalite,@özellik,@adet,@depo,@plakatipi,@talepeden,@agirlik)", baglanti);

            komut.Parameters.AddWithValue("en", textBox1.Text);
            komut.Parameters.AddWithValue("boy", textBox2.Text);
            komut.Parameters.AddWithValue("kalinlik", textBox3.Text);
            komut.Parameters.AddWithValue("kalite", comboBox1.Text);
            komut.Parameters.AddWithValue("özellik", comboBox2.Text);
            komut.Parameters.AddWithValue("adet", textBox4.Text);
            komut.Parameters.AddWithValue("depo", comboBox3.Text+comboBox4.Text);
            komut.Parameters.AddWithValue("plakatipi", comboBox5.Text);
            komut.Parameters.AddWithValue("talepeden", comboBox6.Text);
            komut.Parameters.AddWithValue("agirlik", en*kal);

           

            komut.ExecuteNonQuery();
            baglanti.Close();

Kalınlık kısmı benim için 1,2 1, 5 2 3 gibi sayılardan oluşması lazım.

En altta ise ağırlık hesaplaması yaparken en*kalınlık hesaplaması yaptırmam gerekli.
Hesaplama için, kullanılması gerekiyor ama kalınlık yani texbox3 bir türlü ondalıklı sayı türüne çeviremedim bunu nasıl yapabilirim?
 
Son düzenleyen: Moderatör:

Technopat Haberler

Yeni konular

Geri
Yukarı