Trên C# Winform (VS 2010/C#/.Net 3.5) của tôi, tôi đã tạo một nút trong trình thiết kế. Tôi muốn di chuyển và thay đổi kích thước nút đó thành một vị trí khác dựa trên cài đặt của người dùng khi khởi động biểu mẫu đó.Di chuyển vị trí của nút sau khi đã được vẽ
Trong trường hợp tải trọng hình thức của tôi, tôi có đoạn mã sau để di chuyển và thay đổi kích thước nút:
btnShare.Location = new System.Drawing.Point(16, 496);
btnShare.Margin = new System.Windows.Forms.Padding(4);
btnShare.Size = new System.Drawing.Size(408, 126);
Tất cả các mã để tạo nút là * designer.cs file cho hình thức đặc biệt này.
Vấn đề là: Khi biểu mẫu tải, tôi có thể thấy nút ở vị trí mới dựa trên 3 dòng mã ở trên. Nhưng sau đó khi biểu mẫu được thực hiện tải và đi qua tất cả các sự kiện của nó, nút quay trở lại vị trí ban đầu của nó trong phương thức * .designer.cs InitalizeComponent().
Tôi không muốn lấy mã ra khỏi tệp * .designer.cs và chỉ đưa tệp đó vào tệp .cs của biểu mẫu vì tôi vẫn muốn có thể thấy nút trong trình thiết kế khi tôi làm việc trên thiết kế của biểu mẫu.
Tôi chỉ muốn di chuyển và đổi kích thước nút nếu người dùng có tùy chọn đó được bật khi tải biểu mẫu.
Làm cách nào tôi có thể thực hiện việc này vì .Net dường như vẽ các nút trên biểu mẫu của tôi sau khi sự kiện tải đã xử lý do đó di chuyển nút trở lại vị trí ban đầu của nó?
'InitalizeComponent' chỉ nên được gọi từ nhà xây dựng của bạn được/nên được gọi trước sự kiện Tải. Tôi sẽ đặt một breakpoint vào đầu InitalizeComponent để xem nó được gọi từ đâu. –
Trong trường hợp di chuyển và thay đổi kích thước mã xảy ra ở đâu? –
@Paul: InitalizeComponent được gọi là cách trước khi sự kiện tải, nhưng có vẻ như các nút không thực sự bật lên cho đến khi tất cả các sự kiện được thực hiện. Khi biểu mẫu của tôi tải, tôi có thể thấy cùng một nút ở hai vị trí khác nhau (vị trí ban đầu trong designer.cs và vị trí mới mà tôi có trong sự kiện tải). Nhưng ngay khi biểu mẫu tải, nút ở vị trí thứ hai biến mất và tôi chỉ còn lại với nút gốc được tạo trong designer.cs. Nó giống như mã trong designer.cs có kích thước/vị trí nút ghi đè mã mà tôi có trong sự kiện tải. – fraXis