znalazłem jakiś kod źródłowy w tym wątku zamieszczonych przez Rex Logan tutaj na SO:pozycja Ustawienie oknie konsoli otwarty w WinForms App
... tam też jakiś bardzo ciekawy kod pisał w tym samym wątku przez Foredecker, ale jest niekompletne i złożone: nie jestem na tyle na „Trace Facility umieć w pełni wdrożyć go ...
jestem w stanie użyć tego kodu Rex (Console uprzejmie) wysłany z powodzeniem w aplikacji WinForms, aby rejestrować różne zdarzenia i naciskać messa ges na które są przydatne w debugowaniu; Mogę też usunąć to z kodu aplikacji.
To, czego nie mogę zrobić, to niezawodnie ustawić pozycję ekranu w oknie konsoli po otwarciu okna konsoli (w przypadku obciążenia Main Form). Mam skompilować blokowanie błędy System.ArgumentOutOfRangeException jeśli próbuję ustawić WindowLeft lub WindowTop właściwości tak:
Stanowisko okno musi być ustawione tak, że obecny rozmiar okna pasuje wewnątrz bufora konsoli, a numery nie może być ujemny. Nazwa parametrów: lewy Rzeczywista wartość była #
mogę jednak ustawić WindowWidth i WindowHeight właściwości.
Próbowałem przeniesienie kodu, który uaktywnia konsoli różne lokalizacje w tym:
- w Program.cs złożyć przed MainForm jest „prowadzony
- przed i po wywołaniu” InitializeComponent() w MainForm konstruktor
- w przypadku Forma obciążenia
- w formie, zdarzenie
Conso Le został aktywowany w porządku we wszystkich tych miejscach kodu, ale bez zmiany w pozornie losowym przełączaniu się w miejscu, w którym znajdował się lewy górny kwadrant ekranu.
Otwarcie okna konsoli wydaje się różnić losowo (główny formularz jest zawsze inicjowany w tym samym miejscu na ekranie).
Dziękuję, RRUZ; Udało mi się wprowadzić twój kod do kodu podstawowego przesłanego przez Rex Logan i ustawić okno konsoli tam, gdzie chciałem. Jestem po prostu ciekawy: dlaczego wywołanie "Console.Read()?Jest to uruchomiona aplikacja WinForm, a ja używam Konsoli tylko do "rejestrowania": czy jest to standardowa rzecz do zrobienia podczas inicjowania konsoli z poziomu aplikacji WinForm? Wielkie dzięki! najlepiej, Bill – BillW
@BillW - jest tam, dzięki czemu okno pozostaje widoczne, dopóki nie naciśniesz 'return'. Przykład nic nie robi po ustawieniu pozycji okna, więc po prostu się zamknie i nie zobaczysz, że ma właściwą pozycję. – ChrisF
Witaj ChrisF, Dzięki za odpowiedź! fyi: Korzystanie z kodu opublikowanego przez Rex Logan, z którym łączyłem się w moim pierwotnym żądaniu, okno Console nie jest aktywne bez potrzeby wywoływania Console.Read(). best, Bill – BillW