2015-02-05 28 views
5

Mam niestandardowy formant zawierający pole tekstowe i przycisk. Używam formantu niestandardowego jako formantu edycji dla konkretnej kolumny w ObjectListView.Jak ustawić fokus na formancie w formancie niestandardowym?

Na razie CellEditStarting zrobić:

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

ConfigureControl metoda ObjectListView już nazywa Select metoda kontrolki. Działa to dobrze, jeśli posiadam kontrolę użytkownika dziedziczącą bezpośrednio ze standardowego TextBox.

Tak I dodaje następujący kod do mojego UserControl:

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

Jednakże mając UserControl jak opisano powyżej, sposób Select nie przenieść fokus do pola tekstowego.

Czego mi tu brakuje?

+0

Dzięki, Bracie! ("Me Too", tylko dlatego, że często je widzę razem, ale mam teraz pojęcie, co to oznacza) – FastAl

Odpowiedz

1

Jedyny sposób, że wykonana praca była wreszcie dodać poniższy kod w sterowaniu użytkownika:

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

Śmieszne ktoś głosował na to, kiedy OP powiedział, że zadziałało! – FastAl

1

Można utworzyć metodę w CustomUserControl, na przykład FocusControl(string controlName) , a następnie wywołać tę metodę, aby ustawić ostrość w sterowaniu niestandardowym.

Tworzenie metody w niestandardowym Użytkownika Sterowanie

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

połączenia to method-

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

Nie działa :( –

+0

@ Ivan-MarkDebono, Jakiego rodzaju kontrolę próbujesz ustawić? I z której kontroli? –

+0

Prosty textbox w niestandardowym formancie.Specjalna kontrola jest używana jako kontrola edycji dla ObjectListView. –