2015-10-15 5 views
0

Я работаю с приложением Windows. (. Net/C#) при загрузке Я хочу сделать первый/стандартный контроль выбранным и запустить dataEntry без использования мыши.Фокусировка не работает должным образом

Figure1

После добавить this.ActiveControl = myTextbox; ИЛИ myTextbox .Select(); Это будет работать нормально, глядя на UI

figure2

но то же не активен или типизируем без использования мыши на начальном этапе. Я тоже пробовал то же самое для комбобокса компании и не работал ожидаемым образом.

Я пробовал с фокусом(), а также.

Код:

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 также

+0

Может показать нам некоторые из вашего кода ... мы можем видеть, что вы делаете неправильно, то – kevintjuh93

+0

вы инициализации компонента? – pedram

+2

Будьте осторожны с 'OnLoad', у вас может быть [исключение, в котором это не происходит] (http://stackoverflow.com/questions/4933958/vs2010-does-not-show-unhandled-exception-message-in- а-WinForms-приложения на а). – bokibeg

ответ

1

Кроме того, добавьте ниже строки кода,

this.Activate();

в форму. Это не может быть активный родительский контроль. когда отображается форма.

Я предлагаю активировать форму в конце события загрузки. поэтому форма становится активной формой приложения.

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(); 
     } 
+0

не нужно -> this.ActiveControl = myTextBox; Спасибо –

Смежные вопросы