• 22-07-2013, 23:38:34
    #1
    merhaba ilk kez c# öğreniyrom basılan bir tuşun kodunu nasıl değiştire bilirim

    if (e.KeyCode.ToString() == "Subtract")
    {
    button3_Click(sender, new EventArgs());

    }

    burada basılan tuşun basılmamış olmasını sağlamak için ne yapablirim.
    yani burada - ye bastığımda ekranda - çıkmasın istiyorum
  • 22-07-2013, 23:59:03
    #2
    hangi kontrolün üzerinde tuş basımı yapılıyorsa o kontrolü seç, sağ tıklayıp özelliklere gel, oradan events(olaylar)a tıkla ve o seçeneklerden keypress çift tıkla.

    açılan kısıma

    e.Handled = true; yazarsan o tuş basmaz.

    bir örnek yazarsam, textbox1 isimli metin kutusuna - yazılmaya çalışıldığında tuş iptal edilir. bir de sanırım sen button3 ün click olayını çağırmışsın onu da yazdım

            private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
              if (e.KeyChar == '-') // basılan tuş - ise aşağıdaki işlemleri yap..
              {
                  e.Handled = true; // basılan tuşu iptal eder
                  button3.PerformClick(); // buton3 ün click olayı çalışır
              }
            }
    bu kodu direk kopyalayıp yaparsan çalışmaz, çünkü bu eventi o kontrolün keypress eventine register etmen gerekiyor. o yüzden en başta anlattığım şekilde keypress olayını açar ve yukarıdaki kodda if den itibaren alırsan çalışır (son süslü parantez fonksiyonun parantezi olduğu için almayacaksın)
  • 23-07-2013, 00:49:22
    #3
    teşekkür ederim hocam bu şekilde oldu,bi iki sorum var
    1.si (e.KeyChar == '-') yaptığımız yerde ' işareti yerine " işareti kullanınca hata veriyor.bunların farkı ne
    2.side (e.KeyChar == '-') enter tuşunun basılıp basılmadığını nasıl test edeceğiz
    ertan2002 adlı üyeden alıntı: mesajı görüntüle
    hangi kontrolün üzerinde tuş basımı yapılıyorsa o kontrolü seç, sağ tıklayıp özelliklere gel, oradan events(olaylar)a tıkla ve o seçeneklerden keypress çift tıkla.

    açılan kısıma

    e.Handled = true; yazarsan o tuş basmaz.

    bir örnek yazarsam, textbox1 isimli metin kutusuna - yazılmaya çalışıldığında tuş iptal edilir. bir de sanırım sen button3 ün click olayını çağırmışsın onu da yazdım

            private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
              if (e.KeyChar == '-') // basılan tuş - ise aşağıdaki işlemleri yap..
              {
                  e.Handled = true; // basılan tuşu iptal eder
                  button3.PerformClick(); // buton3 ün click olayı çalışır
              }
            }
    bu kodu direk kopyalayıp yaparsan çalışmaz, çünkü bu eventi o kontrolün keypress eventine register etmen gerekiyor. o yüzden en başta anlattığım şekilde keypress olayını açar ve yukarıdaki kodda if den itibaren alırsan çalışır (son süslü parantez fonksiyonun parantezi olduğu için almayacaksın)
  • 23-07-2013, 01:11:42
    #4
    1- hata vermesinin sebebi keychar karkter türünden yani tek bir karakter alır. çift tırnaklı ifade ise birden fazla karakter içerebilir o yüzden olmaz. ama illa yapmak istiyorsan

    (e.KeyChar.ToString() == "-") şekline yapbilirsin

    2- enter için de şunları deneyebilirsin

    if (e.KeyChar == (char)Keys.Enter)
    ya da
    if (e.KeyChar == '\r')

    ya da
    if (e.KeyChar == 13)


    13, enter ın asci karşılığıdır. r ise enter anlamınadır. özel olduğunu belirtme için r nin önünde slash var
  • 23-07-2013, 01:18:04
    #5
    ==13 yapınca oldu hocam teşekkür ederim.\n denemiştimde bu \r demi varmış .
    sağ olsun hocam c# de hesap makinası yaparak başlıyoruz Allah'ın izni ile.ama visual basic tadı yok gibi bunda çok komplike bi dil gibi

    ertan2002 adlı üyeden alıntı: mesajı görüntüle
    1- hata vermesinin sebebi keychar karkter türünden yani tek bir karakter alır. çift tırnaklı ifade ise birden fazla karakter içerebilir o yüzden olmaz. ama illa yapmak istiyorsan

    (e.KeyChar.ToString() == "-") şekline yapbilirsin

    2- enter için de şunları deneyebilirsin

    if (e.KeyChar == (char)Keys.Enter)
    ya da
    if (e.KeyChar == '\r')

    ya da
    if (e.KeyChar == 13)


    13, enter ın asci karşılığıdır. r ise enter anlamınadır. özel olduğunu belirtme için r nin önünde slash var