2009-07-21 32 views
18

Khi tôi mở một hình thức trong studio trực quan 2005 (C#) nhà thiết kế automaticaly thay đổi kích cỡ biểu mẫu và di chuyển/thay đổi kích cỡ điều khiển mà không cần chạm vào nhà thiết kế ở tất cả. Tệp nguồn được thay đổi và khi tôi đóng trình thiết kế, tôi được yêu cầu lưu tệp * .cs. Tôi đã cố gắng xem xét các tùy chọn studio trực quan mà không thành công. bất kỳ ý tưởng nào? thiết lập studio trực quan hay gì đó? cảm ơn, Talvisual studio 2005 thiết kế di chuyển điều khiển và thay đổi kích thước hình thức

Trả lời

3

Tôi đã tìm được một công việc.

không chắc chắn điều gì xảy ra phía sau nhưng tôi đã thay đổi thuộc tính hiển thị của mình. và nó hoạt động tốt. ở đây là chuỗi: hiển thị tab thích hợp -> tab cài đặt-> trước. trong hộp thoại trước, tôi đã thay đổi "Cài đặt DPI" từ Lớn (120 dpi) thành Bình thường (96 dpi)

+3

thật khủng khiếp khi nhà thiết kế IDE bị ảnh hưởng bởi màn hình DPI của bạn . Rất tiếc khi biết điều đó. :( –

+2

Trong số rất nhiều nỗi kinh hoàng kéo dài bởi Windows, 'cài đặt DPI' là một trong những điều tồi tệ nhất.Cài đặt này gây ra nhiều sự cố hơn với nhiều ứng dụng hơn hầu hết mọi thứ khác mà tôi đã thấy. – Stewbob

1

Đây là một trong những điều bạn nên sống. Ngay cả trong VS2008 những điều như vậy xảy ra theo thời gian. Nó chủ yếu phụ thuộc vào nội dung biểu mẫu (điều khiển, vị trí, vv), và không có tùy chọn trong VS để vô hiệu hóa hành vi đó.

Khi bạn mở biểu mẫu của bạn trong thiết kế, vs thời gian chạy xây dựng lại hình thức trực quan từ mã phía sau. Và đôi khi nó đã thay đổi vào lúc này. Ngoài ra khi bạn chỉ đơn giản là thêm một điều khiển để tạo thành, nhà thiết kế xây dựng lại hoàn toàn tệp mã nguồn và tệp tài nguyên. Đây là vấn đề nổi tiếng, và dường như MS sẽ không sửa chữa nó, bởi vì chúng di chuyển theo hướng WPF.

Vì vậy, một số điểm để đơn giản hóa cuộc sống của bạn:

  1. Di chuyển đến VS2008, nhà thiết kế đã ổn định hơn, nhưng vẫn còn xáo trộn điều khiển trong designer.cs nộp
  2. Đặt mã của bạn trong một trong những kho nguồn, vì vậy nếu bạn vô tình lưu biểu mẫu như vậy, bạn có thể khôi phục nó từ kho.
+0

cảm ơn trọng tài. -well, di chuyển đến năm 2008 không liên quan đến dự án của tôi (liên quan đến quá nhiều mã tại thời điểm này). – tal

+0

VS2005-> 2008 di cư không có vấn đề gì cả. –

+5

Đây vẫn là một vấn đề trong VS2010 – ryantm

10

Tôi đã làm việc về vấn đề này cho hầu hết ngày hôm nay và tìm thấy một số điều thú vị: Nguồn chính của vấn đề dường như dựa vào việc neo đậu. Nếu tôi sử dụng docking để định vị các điều khiển của tôi, thay vì neo, các vấn đề của tôi dường như biến mất. Tôi tìm thấy một vài bài đăng trên blog từ năm 2003 (!), Chi tiết cách bạn có thể sử dụng docking thay vì neo và giải thích cách neo có thể phá vỡ trình thiết kế Windows Forms. Có vẻ như vấn đề này có thể đã hơn 7 tuổi!

Sau đây là các bài viết:

+1

Điều khiển trong biểu mẫu của tôi liên tục bị lệch bởi nhà thiết kế - vấn đề vẫn còn tồn tại trong VS 2012. Chuyển sang docking dường như đã dừng nó. – pettys

+2

Ugh, vẫn còn là vấn đề trong VS2013, cảm ơn vì điều này thực sự hữu ích. – heisenberg

7

Điều này là do AutoScaleMode -property. Biểu mẫu của bạn có thể được thiết kế với một cài đặt DPI hoặc Phông chữ khác với bạn hiện có trong cài đặt hiển thị Windows. AutoScaleMode -property có 4 giá trị có thể khác nhau: Dpi, Font, Inherit hoặc None. Ở chế độ Dpi hoặc Font, các biểu mẫu và điều khiển của bạn sẽ được tự động thay đổi kích thước tùy thuộc vào cài đặt hiển thị cửa sổ.

Vì vậy, hãy đặt AutoScaleMode -property thành None trong tất cả các biểu mẫu và điều khiển của bạn và chúng sẽ không được tự động thay đổi kích thước nữa. Hãy thử thiết kế biểu mẫu của bạn để có đủ không gian trong mọi điều khiển sao cho văn bản sẽ vừa với kích thước văn bản được đặt thành 125%.

+0

Dường như đã làm điều đó cho tôi. Tôi đã phải chỉnh sửa * Form.Designer.cs để thay đổi this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; và loại bỏ this.AutoScaleDimensions = new System.Drawing.SizeF (6F, 13F); (cả hai dòng đều nằm trong tệp .Designer.cs) – Jimmy

0

Đặt biểu mẫu Cài đặt kích thước tối thiểu và tối đa thành kích thước hiện tại là một công việc tốt cho tôi. Điều này ngăn VS thay đổi kích cỡ nó.

2

Đã xảy ra sự cố tương tự với điều khiển được gắn trên cùng, trái và phải trong TabControls phức tạp. Các nhà thiết kế hình thức studio hình ảnh đã tăng chiều rộng của tất cả các điều khiển lồng nhau mỗi lần tôi sẽ mở biểu mẫu.

Tôi đã tìm thấy cách giải quyết đơn giản nhờ this post. Tôi chỉ cần thêm một bảng điều khiển cho mỗi tab và thiết lập thuộc tính dock của họ để điền vào. Tất cả các điều khiển hiện có trong các tab được di chuyển bên trong các bảng đó. Điều này làm việc, ngay cả khi các điều khiển được neo đầu, trái và phải.

trình ít nhất là cho Visual Studio 2013 và 2015.

-2

Tôi có vấn đề này, quá. Mỗi lần tôi mở nhà thiết kế, mỗi ô có neo "phải" được di chuyển khoảng 20 pixel bên trái. Ngoài ra, phần dưới cùng của mỗi ô có neo "trái" là khoảng 200 pixel bên ngoài biểu mẫu.

Biểu mẫu này có nhiều điều khiển và không được thu nhỏ trên màn hình nhỏ hơn, vì vậy nó được đặt thành tự động ghi, biểu mẫu chính nó nhỏ hơn trong thiết kế so với kích thước tối thiểu được hiển thị (lịch sử ...). Tôi chỉ cần đặt kích thước ở kích thước tối thiểu để không có thanh cuộn nào xuất hiện trong nhà thiết kế và các neo làm việc như mong đợi mà không làm hỏng các bản đăng tải.

Tôi đọc bài đăng đầu tiên từ câu trả lời của ryantm dẫn tôi đến giải pháp. Rõ ràng nó có cái gì đó để làm với thứ tự. Net thực hiện các sự kiện như thiết lập kích thước của một biểu mẫu.

0

Tôi có một biểu mẫu tầm thường với một vài điều khiển trên đó, trong đó OK và Hủy ở dưới cùng đang được chuyển lên ngay khi biểu mẫu được mở trong thiết kế VS2013. Các hành vi tương tự đã được quan sát thấy trong VS2015.

Câu trả lời được chấp nhận ở đây của DPI không giải quyết được vấn đề cho tôi, cũng như không có bất kỳ vấn đề nào về kích thước của biểu mẫu/tỷ lệ/lề.

Loại bỏ các điều khiển được chuyển và thêm chúng trở lại thành dạng giải quyết vấn đề đối với tôi, theo đề nghị của ptutt đây: Visual Studio designer moving controls and adding grid columns when form is opened

Trong khi tôi đánh giá cao đề nghị và các liên kết của việc sử dụng docking [với tấm] ryantum của, cũng được đề cập trong liên kết ở trên với bài đăng trên blog của Roland tại đây https://weblogs.asp.net/rweigelt/28984, với một thứ gì đó tầm thường tôi chỉ muốn làm cho nó biến mất với việc xóa/thêm lại.

0

Tôi thấy việc khóa các điều khiển từ trình đơn định dạng là giải pháp đơn giản và hiệu quả. VS2013

-1

Tôi đã gặp vấn đề này với VS 2015. Tôi đã sử dụng bảng điều khiển dock với các điều khiển di chuyển bất ngờ như con của họ. Theo mặc định, các điều khiển sẽ được căn chỉnh sang trái, nhưng bạn có thể thay đổi hướng. Các nút của tôi đã ngừng di chuyển.

Các vấn đề liên quan