매우 간단한 Windows Forms 응용 프로그램이 있습니다. 그리고 Windows (또는 적어도 Windows Forms 응용 프로그램)에서 한 줄 TextBox 컨트롤 내부에서 Enter 키를 누르면 딩이 들립니다. 그것은 한 줄 TextBox이기 때문에 개행을 입력 할 수 없음을 나타내는 불쾌한 소리입니다.
괜찮습니다. 그러나 내 양식에는 1 개의 TextBox와 검색 단추가 있습니다. 그리고 사용자가 입력을 완료 한 후가되지 않도록, Enter 키를 눌러 검색을 수행 할 수 있도록하고 있는 검색 버튼을 클릭 마우스를 사용 할 수 있습니다.
하지만이 딩 소리가 발생합니다. 매우 성가신 일입니다.
내 양식에서 소리가 전혀 재생되지 않도록하려면 어떻게해야합니까?
@David H-Enter 누름을 감지하는 방법은 다음과 같습니다.
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
// Perform search now.
}
}
답변
Form.AcceptButton 속성을 확인하십시오 . 이를 사용하여 양식의 기본 단추를 지정할 수 있습니다.이 경우에는 Enter를 누르십시오.
문서에서 :
이 속성을 사용하면 사용자가 응용 프로그램에서 Enter 키를 누를 때 발생하는 기본 작업을 지정할 수 있습니다. 이 속성에 할당 된 단추는 현재 폼에 있거나 현재 폼의 컨테이너 내에있는 IButtonControl이어야합니다.
사용자가 이스케이프를 누를 때를위한 CancelButton 속성 도 있습니다 .
답변
나를 위해 작동합니다.
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
//Se apertou o enter
if (e.KeyCode == Keys.Enter)
{
//enter key is down
this.doSomething();
e.Handled = true;
e.SuppressKeyPress = true;
}
}
SuppressKeyPress는 정말 트릭입니다. 도움이 되었기를 바랍니다.
답변
시험
textBox.KeyPress += new KeyPressEventHandler(keypressed);
private void keypressed(Object o, KeyPressEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
e.Handled = true; //this line will do the trick
}
}
답변
e.SuppressKeyPress = true;
“if”문을 추가 하기 만하면 됩니다.
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
//If true, do not pass the key event to the underlying control.
e.SuppressKeyPress = true; //This will suppress the "ding" sound.*/
// Perform search now.
}
}
답변
KeyUp 또는 KeyDown 대신 KeyPress를 더 효율적으로 사용할 수 있으며 처리 방법은 다음과 같습니다.
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
e.Handled = true;
button1.PerformClick();
}
}
그리고 ‘Ding’에게 평화를 전하세요
답변
SuppressKeyPress
키 입력을 처리 한 후 계속되는 처리를 중지하는 데 사용 합니다.
public class EntryForm: Form
{
public EntryForm()
{
}
private void EntryTextBox_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
{
e.Handled = true;
e.SuppressKeyPress = true;
// do some stuff
}
else if(e.KeyCode == Keys.Escape)
{
e.Handled = true;
e.SuppressKeyPress = true;
// do some stuff
}
}
private void EntryTextBox_KeyUp(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
{
// do some stuff
}
else if(e.KeyCode == Keys.Escape)
{
// do some stuff
}
}
}
답변
나는 이것이 나를 위해 일한 KeyDown을 처리하려고 시도하는 동안이 게시물을 우연히 발견했습니다.
If e.KeyCode = Keys.Enter Then
e.SuppressKeyPress = True
btnLogIn.PerformClick()
End If
키 누르기를 누르면 이벤트가 기본 컨트롤로 전송되는 것을 중지합니다. 해당 텍스트 상자 내에서 Enter 키가 수행하는 모든 작업을 수동으로 처리하는 경우 작동합니다. Visual Basic에 대해 죄송합니다.