2015-02-05 2 views
5

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

На мероприятии CellEditStarting я:

private void datalistViewProducts_CellEditStarting(object sender, CellEditEventArgs e) 
{ 
    var ctl = (MyCustomControl)e.Control; 
    e.Control = ctl; 
} 

метод The ​​ObjectListView в ConfigureControl уже вызывает Select метод элемента управления. Он отлично работает, если у меня есть usercontrol, наследующий непосредственно из стандартного TextBox.

Поэтому я добавил следующий код в моем UserControl:

public new void Select() 
{ 
    textBox.Select(); 
} 

Однако, имея UserControl, как описано выше, метод Select не перемещает фокус в текстовое поле.

Что мне здесь не хватает?

+0

Спасибо, брат! («Me Too», просто потому, что я часто вижу их вместе, однако теперь имею в виду, что это значит) – FastAl

ответ

1

Единственный способ, который сделал это, наконец, работа, чтобы добавить следующий код в usercontrol:

protected override void OnEnter(EventArgs e) 
{ 
    base.OnEnter(e); 
    textBox.Select(); 
} 
+0

Забавный кто-то проголосовал за это, когда ОП сказал, что это сработало! – FastAl

1

Вы можете создать метод в CustomUserControl, скажем FocusControl(string controlName) , а затем вызвать этот метод, чтобы сфокусировать управление в пользовательском контроле.

Создать метод в пользовательском пользователя control-

public void FocusControl(string controlName) 
    { 
     var controls = this.Controls.Find(controlName, true); 
     if (controls != null && controls.Count() == 1) 
     { 
      controls.First().Focus(); 
     } 
    } 

вызов этого ме-

//textBox1 is the name of your focussing control in Custom User Control 
userControl11.FocusControl("textBox1"); 
+0

Не работает :( –

+0

@ Ivan-MarkDebono, Какой контроль вы пытаетесь сфокусировать? –

+0

Простой текстовый ящик в настраиваемом элементе управления. Пользовательский элемент управления используется как элемент управления редактирования для объекта ObjectListView. –