저는 사용자가 양식에 데이터를 입력하는 Windows 양식 응용 프로그램 (C#)에서 작업하고 있습니다. 양식의 데이터를 편집하는 동안 사용자는 양식의 단추 중 하나를 클릭하여 특정 조치를 수행 할 수 있습니다. 기본적으로 포커스는 클릭 된 버튼으로 이동하므로 사용자가 폼에서 데이터 수정을 계속하기 위해 편집하려는 컨트롤로 다시 클릭해야합니다. 내가 할 수 있어야 할 일은 버튼 클릭 이벤트가 처리 된 후 마지막으로 편집 된 컨트롤로 포커스를 되돌려 보내는 것입니다. 여기에 내가 무슨 말인지 설명하는 샘플 스크린 샷입니다 :어떻게 Winform 응용 프로그램에서 단추를 클릭 한 후 마지막으로 사용한 컨트롤에 포커스를 반환합니까?
사용자는 TextBox1에, TextBox2를, textbox3 등의 데이터를 입력하고 버튼을 클릭 할 수 있습니다. 단추를 클릭하기 전에 가장 최근에 포커스가있는 컨트롤로 포커스를 되돌리려면 단추가 필요합니다.
누구든지이 기능을 구현하는 데 더 좋은 방법이 있는지 궁금합니다. 여기에 제가 지금하고있는 일이 있습니다 :
public partial class Form1 : Form
{
Control _lastEnteredControl;
private void textBox_Enter(object sender, EventArgs e)
{
_lastEnteredControl = (Control)sender;
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Do something here");
_lastEnteredControl.Focus();
}
}
그래서 기본적으로 여기에는 마지막으로 입력 한 컨트롤을 가리키는 클래스 변수가 있습니다. 양식의 각 텍스트 상자는 설정되어 있으므로 컨트롤이 포커스를받을 때 textBox_Enter 메서드가 시작됩니다. 그런 다음 단추를 클릭하면 단추를 클릭하기 전에 포커스가있는 컨트롤로 포커스가 반환됩니다. 아무도 이것에 대한 더 우아한 솔루션을 가지고 있습니까?
재귀가 필요합니다. – SLaks