Problemi con l'impostazione Focus / Seleziona per formare dopo che mostravo Form2 usando AXACROPDFLIB
-
21-12-2019 - |
Domanda
Come da titolo, sto avendo problemi a selezionare e impostare la messa a fuoco su un controllo nel modulo1 subito dopo che mostro il modulo2.Qualche idea del perché il codice qui sotto non funziona?
public partial class MainForm : Form
{
public Form2 frm2;
...
public void ReadThroughContents(int index)
{
...
if (frm2.IsDisposed || frm2 == null) { frm2 = new Form2(); }
if (!frm2.Visible) { frm2.Show(); }
this.listbox1.Focus();
this.listbox1.Select();
...
}
.
Modifica: solo per chiarire, il fuoco rimane su Form2.Io sono comunque in grado di selezionare e concentrarmi su Form1 manualmente cliccando sul modulo, ma ho bisogno di farlo automaticamente.
Modifica: in Form2 Sto usando la libreria AxAcroPDFLib
.Un file PDF viene caricato in Form2 quando viene mostrato.Credo che questo sia ciò che impedisce a Form1 di concentrarsi.Ho provato senza caricare il file PDF e posso automatizzare la messa a fuoco.
applausi.
Soluzione 2
Trovato una soluzione grazie a @DefaultLocale sopra!
Codice copiato da qui
private void returnFocus(object sender, EventArgs e)
{
lstboxItems.Focus();
}
this.lstboxItems.LostFocus += new System.EventHandler(this.returnFocus);
. Altri suggerimenti
..Solo per chiarire, il fuoco rimane su Form2.
Questo accade perché Form.Show
ruba la messa a fuoco.
Si può provare a riportare a fuoco a Form1 prima di impostare la messa a fuoco su controlli specifici.Puoi usare Form.attivo per fare questo:
//...
this.Activate();
this.listbox1.Focus();
//...
.
Dai un'occhiata a questo quessiton se si desidera mostrare sempre il modulo2 senza rubare attenzione: Mostra AForma senza rubare attenzione?