Na moim C# Winform (VS 2010/C#/.Net 3.5), utworzyłem przycisk w projektancie. Chcę przenieść i zmienić rozmiar tego przycisku w inne miejsce na podstawie ustawień użytkownika po uruchomieniu tego formularza.Przenieś położenie przycisku po jego pobraniu.
W przypadku obciążenia mojego formularza, mam następujący kod do przenoszenia i zmiany rozmiaru przycisku:
btnShare.Location = new System.Drawing.Point(16, 496);
btnShare.Margin = new System.Windows.Forms.Padding(4);
btnShare.Size = new System.Drawing.Size(408, 126);
Cały kod, aby utworzyć przycisk jest plik * .designer.cs dla tej konkretnej formie.
Problem polega na tym, że: Po załadowaniu formularza widzę przycisk w jego nowej lokalizacji w oparciu o 3 wiersze kodu powyżej. Kiedy jednak formularz zostanie załadowany i przejdzie wszystkie zdarzenia, przycisk powraca do swojej pierwotnej lokalizacji, która znajduje się w metodzie * .designer.cs InitalizeComponent().
Nie chcę pobierać kodu z pliku * .designer.cs i umieszczać go tylko w pliku .cs pliku formularza, ponieważ nadal chcę móc zobaczyć przycisk w projektancie podczas pracy nad plikiem projekt formularza.
Po prostu chcę przesunąć i zmienić rozmiar przycisku, jeśli użytkownik ma tę opcję przełączoną po załadowaniu formularza.
Jak mogę to zrobić, ponieważ .Net wydaje narysować przyciski w moim formularzu po przetworzeniu zdarzenia obciążenia, przenosząc przycisk z powrotem do oryginalnego miejsca?
'InitalizeComponent' należy uzyskiwanie wywołana tylko z konstruktora które dostaje/powinno się nazywa dobrze przed przypadku obciążenia. Postawiłbym punkt przerwania na początku InitalizeComponent, aby zobaczyć, skąd jest wywoływany. –
W którym wydarzeniu występuje ruch i kod zmiany rozmiaru? –
@Paul: InitalizeComponent zostaje wywołany przed zdarzeniem load, ale wygląda na to, że przyciski nie pojawiają się, dopóki wszystkie zdarzenia nie zostaną zakończone. Po załadowaniu formularza widzę ten sam przycisk w dwóch różnych miejscach (pierwotna lokalizacja w pliku designer.cs i nowa lokalizacja, którą mam w zdarzeniu ładowania). Ale zaraz po załadowaniu formularza przycisk znajdujący się w drugiej lokalizacji znika, a pozostawiam tylko oryginalny przycisk utworzony w pliku designer.cs. To tak, jakby kod w pliku designer.cs określał rozmiary/lokalizacje, które przycisk zastępuje kod, który mam w zdarzeniu ładowania. – fraXis