pierde net lost how foco evento event cuando asp c# .net textbox focus lost-focus

lost - C#/. NET: TextBox no está ''enfocado'' después de que se inició un proceso



onblur asp (5)

Tengo un problema después de abrir el bloc de notas una vez que hago clic en el botón "btnSearch".

La idea es que una vez que haga clic en el botón ''btnSearch'', el cuadro de texto ''txtSearch'' debe estar ''enfocado'' incluso después de que se haya iniciado / abierto un proceso fuera de la ventana principal.

Aquí está mi código:

private void btnSearch_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("notepad"); txtSearch.Focus(); // not working }

¿Alguna sugerencia?


El siguiente es el código que necesitarías. Esto podría hacerse a través de servicios interoperativos

private void setwind() { System.Diagnostics.Process.Start("notepad"); System.Threading.Thread.Sleep(2000); // To give time for the notepad to open if (GetForegroundWindow() != this.Handle) { SetForegroundWindow(this.Handle); } } [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] static extern bool SetForegroundWindow(IntPtr hWnd); [DllImport("user32.dll")] static extern IntPtr GetForegroundWindow();


En tu evento Page_Load prueba

Control c= GetPostBackControl(this.Page); if(c != null) { if (c.Id == "btnSearch") { SetFocus(txtSearch); } }

A continuación, agregue esto a su página o BasePage o lo que sea

public static Control GetPostBackControl(Page page) { Control control = null; string ctrlname = page.Request.Params.Get("__EVENTTARGET"); if (ctrlname != null && ctrlname != String.Empty) { control = page.FindControl(ctrlname); } else { foreach (string ctl in page.Request.Form) { Control c = page.FindControl(ctl); if(c is System.Web.UI.WebControls.Button) { control = c; break; } } } return control; }


Has probado

txtSearch.Select () txtSearch.Focus()

?
¿Tu TextBox está dentro de un GroupBox?


Las aplicaciones no pueden "robar" el foco de otras aplicaciones (desde Windows XP), lo más cerca que pueden lograr es actualizar la barra de tareas, lo que es posible a través de P / Invocar:

[DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] static extern bool FlashWindow(IntPtr handle, bool invert);

A continuación, pásalo por el asa del formulario


Mire la propiedad TabIndex . Use un valor de 0 en el control que necesita enfocar cuando inicie la aplicación.