내 C # 프로그램 textBox에 있습니다.
프로그램이 시작되면 포커스가 textBox에 있어야합니다.
Form_Load에서 시도해보십시오.
MyTextBox.Focus();
그러나 그것은 작동하지 않습니다
답변
ActiveControl
양식 의 속성을 설정하면 괜찮을 것입니다.
this.ActiveControl = yourtextboxname;
답변
탭 순서를 확인하고 텍스트 상자가 0으로 설정되어 있는지 확인하십시오.
답변
시도해 볼 수 있습니다 :
설명서에 따르면 :
컨트롤의 선택 가능한 스타일 비트가 ControlStyles에서 true로 설정되고 다른 컨트롤에 포함되어 있고 모든 부모 컨트롤이 표시되고 활성화 된 경우 Select 메서드는 컨트롤을 활성화합니다.
MyTextBox.CanSelect 속성 을 검사하여 컨트롤을 선택할 수 있는지 먼저 확인할 수 있습니다 .
답변
컨트롤이 렌더링되지 않은 경우 컨트롤에 포커스를 설정할 수 없습니다. 컨트롤이 렌더링되기 전에 Form.Load ()가 발생합니다.
양식의 이벤트로 이동하여 “표시된”이벤트를 두 번 클릭하십시오. 양식의 표시된 이벤트 핸들러에서 control.Focus () 메소드를 호출하십시오.
private void myForm_Shown(object sender, EventArgs e)
{
// Call textbox's focus method
txtMyTextbox.Focus();
}
답변
양식을 처음 표시 할 때만 초점을 설정하려면 Form.Shown 이벤트를 처리 하고 수행하십시오. 그렇지 않으면 Control.VisibleChanged를 사용하십시오 .
답변
Textbox.Focus()
텍스트 상자 요소에 초점을 설정하는 “시도” 예를 들어 요소 가시성이 숨겨져 있으면 Focus()
작동하지 않습니다. 호출하기 전에 요소가 표시되는지 확인하십시오 Focus()
.
답변
당신이 그것을 작동시킬 수없는 이유 Load
는 폼이 그려 지거나 렌더링되기 전에 이벤트가 호출되기 때문 입니다.
피자 가게에 피자 만드는 법을 알려주고 피자를 만들기 전에 페퍼로니가 얼마나 있는지 사진을 보내달라고 요청하는 것과 같습니다.
using System;
using System.Windows.Forms;
namespace Testing
{
public partial class TestForm : Form
{
public TestForm()
{
InitializeComponent();
Load += TestForm_Load;
VisibleChanged += TestForm_VisibleChanged;
Shown += TestForm_Shown;
Show();
}
private void TestForm_Load(object sender, EventArgs e)
{
MessageBox.Show("This event is called before the form is rendered.");
}
private void TestForm_VisibleChanged(object sender, EventArgs e)
{
MessageBox.Show("This event is called before the form is rendered.");
}
private void TestForm_Shown(object sender, EventArgs e)
{
MessageBox.Show("This event is called after the form is rendered.");
txtFirstName.Focus();
}
}
}
