C# Form Uygulaması Buton
7
●118
- 07-05-2023, 10:52:07Herkese merhaba, c# Form ile çalışıyorum. Bilgisayar klavyesinden tuşlar ile Arduino üzerinde bir araba kontrolü için uygulama yapıyorum. Fakat bu tuşlara sadece basılı tutarken aktif olmasını istiyorum tuştan elimizi çektiğimizde başlangıç olan konumuna gelmesi lazım bunu nasıl yapabiliriz.
- 07-05-2023, 10:55:56Button Eventler kısmından dilediğiniz olaya özel kod yazabilirsiniz hocam.
Bu Linkte 3 adet event bulunuyor hocam KeyPress yani tuşa basıldığında. KeyDown, elini tuşun üzerine koyduğunda, KeyUp bastıktan sonra kaldıdğında. içeride ki linklere giderseniz örnek kodlar mevcut. Umarım işinize yarar. https://learn.microsoft.com/en-us/do...netdesktop-7.0 - 07-05-2023, 10:59:04Hocam hangi kodu kullanıcam birkaç tane denedim başarılı olamadım çünkü biraz açar mısınız?SpyBey adlı üyeden alıntı: mesajı görüntüle
- 07-05-2023, 11:03:37
// Boolean flag used to determine when a character other than a number is entered. private bool nonNumberEntered = false; // Handle the KeyDown event to determine the type of character entered into the control. private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { // Initialize the flag to false. nonNumberEntered = false; // Determine whether the keystroke is a number from the top of the keyboard. if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9) { // Determine whether the keystroke is a number from the keypad. if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9) { // Determine whether the keystroke is a backspace. if(e.KeyCode != Keys.Back) { // A non-numerical keystroke was pressed. // Set the flag to true and evaluate in KeyPress event. nonNumberEntered = true; } } } //If shift key was pressed, it's not a number. if (Control.ModifierKeys == Keys.Shift) { nonNumberEntered = true; } } // This event occurs after the KeyDown event and can be used to prevent // characters from entering the control. private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { // Check for the flag being set in the KeyDown event. if (nonNumberEntered == true) { // Stop the character from being entered into the control since it is non-numerical. e.Handled = true; } }// Boolean flag used to determine when a character other than a number is entered. private bool nonNumberEntered = false; // Handle the KeyDown event to determine the type of character entered into the control. private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { // Initialize the flag to false. nonNumberEntered = false; // Determine whether the keystroke is a number from the top of the keyboard. if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9) { // Determine whether the keystroke is a number from the keypad. if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9) { // Determine whether the keystroke is a backspace. if(e.KeyCode != Keys.Back) { // A non-numerical keystroke was pressed. // Set the flag to true and evaluate in KeyPress event. nonNumberEntered = true; } } } //If shift key was pressed, it's not a number. if (Control.ModifierKeys == Keys.Shift) { nonNumberEntered = true; } } // This event occurs after the KeyDown event and can be used to prevent // characters from entering the control. private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { // Check for the flag being set in the KeyDown event. if (nonNumberEntered == true) { // Stop the character from being entered into the control since it is non-numerical. e.Handled = true; } }// Boolean flag used to determine when a character other than a number is entered. private bool nonNumberEntered = false; // Handle the KeyDown event to determine the type of character entered into the control. private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { // Initialize the flag to false. nonNumberEntered = false; // Determine whether the keystroke is a number from the top of the keyboard. if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9) { // Determine whether the keystroke is a number from the keypad. if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9) { // Determine whether the keystroke is a backspace. if(e.KeyCode != Keys.Back) { // A non-numerical keystroke was pressed. // Set the flag to true and evaluate in KeyPress event. nonNumberEntered = true; } } } //If shift key was pressed, it's not a number. if (Control.ModifierKeys == Keys.Shift) { nonNumberEntered = true; } } // This event occurs after the KeyDown event and can be used to prevent // characters from entering the control. private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { // Check for the flag being set in the KeyDown event. if (nonNumberEntered == true) { // Stop the character from being entered into the control since it is non-numerical. e.Handled = true; }bahsettiğim örnek kod burada hocam biraz incelerseniz anlayabilirsiniz. - 07-05-2023, 11:19:49Evet hocam denedim şimdi oldu, teşekkür ederim.VBuMaSTeR adlı üyeden alıntı: mesajı görüntüle
- 07-05-2023, 11:22:24Merhaba,
C# Form uygulamasında klavye olaylarını işleyebilirsiniz. Klavyeden bir tuşa basıldığında, KeyDown olayı tetiklenir ve tuşa basılı tutulduğu sürece bu olay tetiklenmeye devam eder. Tuş bırakıldığında ise KeyUp olayı tetiklenir. Bu olayları kullanarak, tuşa basılı tutulduğu sürece hareket işlemlerini gerçekleştirebilir ve tuş bırakıldığında arabanın başlangıç konumuna dönmesini sağlayabilirsiniz.
Aşağıdaki örnek kod parçasında, KeyDown olayı ile tuşa basıldığında hareket işlemleri gerçekleştirilir ve KeyUp olayı ile tuş bırakıldığında araba başlangıç konumuna döner:
private void Form1_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.Up: // Arabayı ileriye doğru hareket ettir break; case Keys.Down: // Arabayı geriye doğru hareket ettir break; case Keys.Left: // Arabayı sola doğru hareket ettir break; case Keys.Right: // Arabayı sağa doğru hareket ettir break; } } private void Form1_KeyUp(object sender, KeyEventArgs e) { // Tuş bırakıldığında, arabanın başlangıç konumuna dönmesi için gereken işlemler gerçekleştirilir }Bu örnek kodda, KeyDown olayı ile tetiklenebilecek tuşlar Keys.Up, Keys.Down, Keys.Left, ve Keys.Right olarak belirtilmiştir. Tuş bırakıldığında gerçekleştirilecek işlemler ise Form1_KeyUp olayında yer almalıdır.
İyi çalışmalar dilerim.
ChatGPT'den alıntıdır.