【问题标题】:Combobox Focus is not setting组合框焦点未设置
【发布时间】:2018-09-04 05:15:41
【问题描述】:

我正在尝试在构造函数中设置组合框。但是有些它没有设置为 true 所以,必填字段验证被触发,我无法更改组合框的值。基于组合框选择控件是隐藏和显示。我的代码是:

public CompanyAddEdit(MainForm form, int totalItems)
{
    passedForm = form;
    InitializeComponent();            
    BindCompanyType();
    Id = totalItems;
    xmlDocPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Companies.xml");
    xDocument = XDocument.Load(xmlDocPath);   
    cmbbx_companyType.Focus();
}

【问题讨论】:

  • 不,它仍然显示在下一个控件上。
  • 尝试使用cmbbx_companyType.Focus(),而不是cmbbx_companyType.Select()
  • @vikscool,感谢它的工作
  • @vikscool 请在答案表格中提供您的答案,以便可以更新此问题以获得可接受的答案。

标签: c# winforms combobox


【解决方案1】:

有两种方法可以让combobox 专注于构造函数。

  1. comboboxTabindex 属性设置为最低。
  2. 你可以调用cmbbx_companyType.Select()来设置焦点可见后。

这里是您的代码的更新 sn-p 与 Select()

public CompanyAddEdit(MainForm form, int totalItems)
{
  passedForm = form;
  InitializeComponent();            
  BindCompanyType();
  Id = totalItems;
  xmlDocPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Companies.xml");
  xDocument = XDocument.Load(xmlDocPath);   
  cmbbx_companyType.Select();
} 

【讨论】:

  • 那么focus()select()方法有什么区别呢?
  • 你也忘了this.ActiveControl = cmbbx_companyType;的可能性
  • focus() 仅在控件可见时起作用(即显示窗体时,或者您可以在onShown() 事件中调用它)其中select() 设置值并将设置显示时聚焦/激活控件。是的,this.ActiveControl 也是一种可能,而我提供 select() 只是因为它易于理解。
  • 是的,我知道,但我的意思是你应该在你的答案中写下这个解释以使其完整
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
  • 1970-01-01
  • 2016-05-11
相关资源
最近更新 更多