C#

Счетчик нажатия кнопки Enter. Написал программу, но не работает. Winforms C#

Написал программу счетчика нажатия кнопки Enter. Создал label на форме, но ничего не происходит. Подскажите что делаю не так. Код:
public Form1()
{
InitializeComponent();
label6.Text = "0";
}

int v = 0;

public void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
v++;
label6.Text = v++.ToString();
}



}
}
}
Ваш код правильный, но для того, чтобы событие KeyDown срабатывало на форме, необходимо задать свойство KeyPreview у формы в значение true. Для этого можно добавить следующую строку в конструктор формы:

this.KeyPreview = true;

Также убедитесь, что событие Form1_KeyDown привязано к форме. Для этого выберите форму в дизайнере, откройте окно свойств и в списке событий найдите KeyDown. Дважды щелкните на поле рядом с KeyDown и выберите метод Form1_KeyDown из выпадающего списка. После этого программа должна корректно считать количество нажатий клавиши Enter.
KS
Koba Sartania
1 465
Лучший ответ
 using System.Windows.Forms; 

public partial class Form1 : Form
{
private int counter = 0;

public Form1()
{
InitializeComponent();
}

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
counter++;
label1.Text = $"Количество нажатий: {counter}";
}
}
}

В этом примере программа использует событие KeyDown формы, чтобы определить, была ли нажата клавиша Enter. Когда пользователь нажимает клавишу Enter, счетчик увеличивается на 1 и новое значение выводится на Label. Важно убедиться, что свойство KeyPreview формы установлено на true, чтобы форма могла перехватывать нажатия клавиш до элементов управления внутри нее.
 using System; 
using System.Windows.Forms;

namespace YourNamespace
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
label6.Text = "0";
// Привязка обработчика событий к событию KeyDown
this.KeyDown += Form1_KeyDown;
}

int v = 0;

public void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
v++;
label6.Text = v.ToString();
}
}
}
}
Константин Николаевич Вам необходимо заменить YourNamespace на пространство имен вашего проекта. И я также заменил e.KeyValue == 13 на e.KeyCode == Keys.Enter для удобства и читаемости кода.

Помимо этого, убедитесь, что свойство KeyPreview формы установлено в true. Это позволит форме получать события клавиш перед тем, как они будут отправлены элементам управления на форме. Вы можете установить его в конструкторе формы, следующим образом:
 public Form1() 
{
InitializeComponent();
label6.Text = "0";
this.KeyDown += Form1_KeyDown;
this.KeyPreview = true; // Добавьте эту строку
}