ho trovato un po 'di codice sorgente in questa discussione inviato da Rex Logan qui su SO:posizione Impostazione di una finestra di console aperta in un WinForms App
... c'è anche un po' di codice molto interessante pubblicato in questo stesso thread di Foredecker, ma è incompleto e complesso: non sono abbastanza su 'Trace facility per sapere come implementarlo completamente ...
Sono in grado di utilizzare questo codice di console Rex (gentilmente) inviato correttamente in un'applicazione WinForms per registrare vari eventi e per spingere messa ges su cui sono utili nel debugging; Posso cancellarlo anche dal codice dell'applicazione.
Quello che non riesco a fare è impostare in modo affidabile la posizione dello schermo della finestra della console quando apro la finestra della console (nell'evento di caricamento del modulo principale). Ottengo compilazione errori di blocco System.ArgumentOutOfRangeException se provo a impostare WindowLeft o visualizza locandina proprietà come questa:
La posizione della finestra deve essere impostato in modo che la dimensione della finestra corrente si inserisce all'interno del buffer della console, ed i numeri non deve essere negativo Nome parametro: sinistro Valore reale era #
sono in grado, tuttavia, di impostare WindowWidth e WindowHeight proprietà.
ho cercato di spostare il codice che attiva le varie località della console tra cui:
- nel file Program.cs prima che il MainForm é '
- prima e dopo la chiamata a' InitializeComponent() in la MainForm ctor
- nell'evento Form Load
- nella forma mostrata evento
la Conso Le è stato attivato bene in tutti questi punti del codice, ma senza alcun cambiamento nel passaggio apparentemente casuale di dove si trovava nel quadrante in alto a sinistra dello schermo.
Dove si apre la finestra della console sembra variare a caso (il modulo principale viene sempre inizializzato nello stesso punto sullo schermo).
Grazie, RRUZ; Sono stato in grado di incorporare il codice nel codice di base pubblicato da Rex Logan e impostare la finestra della console dove volevo. Sono solo curioso: perché la chiamata a 'Console.Read()?Questa è un'app WinForms in esecuzione e sto utilizzando la console solo per "logging": è una cosa standard da fare quando si inizializza una console da un'app WinForm? Mille grazie! meglio, Bill – BillW
@BillW: è lì in modo che la finestra rimanga visibile fino a quando non si preme 'return'. L'esempio non fa nulla dopo aver impostato la posizione della finestra, quindi si chiudeva semplicemente e non si vedeva che aveva la giusta posizione. – ChrisF
Ciao ChrisF, Grazie per la vostra risposta! fyi: Usando il codice inviato da Rex Logan a cui mi sono collegato nella mia richiesta originale, la finestra della console rimane attiva senza bisogno di una chiamata a Console.Read(). best, Bill – BillW