专注于onload无法正常工作

时间:2015-10-15 11:27:20

标签: c# winforms

我正在使用Windows应用程序。(。net / c#) 在加载时我想将第一个/默认控件设置为选中并在不使用鼠标的情况下启动dataEntry。

Figure1

我添加this.ActiveControl = myTextbox;myTextbox .Select();后,它会在UI上正常工作

figure2

但最初没有使用鼠标时,它是不活跃的或可打字的。我对公司的组合框也做了同样的尝试而没有按预期的方式工作。

我也尝试了Focus()。

代码:

protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e);
    _context = new CompanyContext();
    companyList = _context.Companies.ToList();
    var companylist = new BindingList<BPS.Data.Entities.Company>(companyList);
    metroComp.DataSource = companylist;
    metroComp.DisplayMember = "CompanyName";
    metroComp.ValueMember = "CompanyName";
    this.ActiveControl = myTextBox;
    //myTextBox.Select();// Tried this line also and working same effect
}

我在Form_Load中尝试了该代码

2 个答案:

答案 0 :(得分:1)

还添加以下代码行,

this.Activate();

到你的表格。它可能不是活动的父控件。当表格显示时。

我建议在Load事件结束时激活表单。所以表单成为应用程序中的活动表单。

答案 1 :(得分:1)

所以我认为这是适合您案例的代码,

protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            _context = new CompanyContext();
            companyList = _context.Companies.ToList();
            var companylist = new BindingList<BPS.Data.Entities.Company>(companyList);
            metroComp.DataSource = companylist;
            metroComp.DisplayMember = "CompanyName";
            metroComp.ValueMember = "CompanyName";
            InitializeComponent();
            myTextBox.Focus();
        }