Tôi vừa mới cài đặt bản beta Windows MonoDevelop mới, nhưng khi cố gắng tạo một ứng dụng C# windows thì tùy chọn duy nhất là GTK #. Vì Mono hỗ trợ WinForms, tại sao đây không phải là một tùy chọn trong MonoDevelop. Tôi muốn không có phụ thuộc GTK # trong các ứng dụng của mình.Ứng dụng WinForms trong MonoDevelop
Trả lời
mặc dù điều Winforms được hỗ trợ trong mono kể từ phiên bản 2.0, các nhà thiết kế WinForms là không thể sử dụng được nêu ra trong MonoDevelop, mà có thể là lý do cho việc thiếu một dự án WinForms trong MonoDevelop
http://www.mono-project.com/WinForms_Designer
AFAIK, bạn nên nghĩ đến sự hỗ trợ của mono đối với winforms như một cách để chuyển ứng dụng winforms hiện có sang linux. Nếu bạn muốn tạo ứng dụng đa nền tảng từ đầu, bạn nên sử dụng GTK #
Mặc dù không có mẫu dự án WinForms, bạn có thể ghi ứng dụng WinForms trong MD trên bất kỳ nền tảng nào chạy trên MD.
Chỉ cần tạo một dự án C# trống mới và thêm tham chiếu đến System.Windows.Forms, sau đó viết mã của bạn và xây dựng & chạy. Mặc dù không có trình thiết kế Winforms nào trong MD, bạn sẽ hoàn thành mã cho các kiểu Winforms.
Chúng tôi đang sử dụng không gian tên System.Windows.Forms vì chúng tôi đã xây dựng giao diện người dùng của mình. Đối với công việc bổ sung trong giao diện người dùng chúng tôi đang sử dụng SharpDevelop, và sau đó mã hóa trong MD. – IAbstract
Xin lỗi vì đã làm người chết, nhưng tôi đã cố thực hiện việc này gần đây. Trong khi MonoDevelop không cung cấp trình thiết kế GUI, bạn thực sự có thể viết Winforms bằng tay, như mhutch đã chỉ ra. Nó như sau:
- Tạo một dự án C# mới trống.
- Thêm một tham chiếu đến System.Windows.Forms
- Tạo mới, rỗng C# file:
Nội dung của file:
using System;
using System.Windows.Forms;
namespace HelloForms
{
public class MainForm: Form
{
Label label1 = new Label();
public MainForm()
{
this.SuspendLayout();
// Initialize your components here
this.label1.Text = "Hello, World!";
this.Controls.Add(label1);
this.ResumeLayout();
this.Name = "MainForm Name.";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "MainForm Title!";
}
}
public class Program
{
public static void Main(string[] args) {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}
Mở rộng Mẫu của bạn bằng cách thêm các thành phần để của MainForm constructor.
Bạn cũng phải thêm tham chiếu vào Hệ thống –
- 1. Đồ họa mẫu ứng dụng .NET winforms
- 2. Thoát khỏi ứng dụng C# winforms
- 3. Chụp sự kiện thoát ứng dụng - WinForms
- 4. Kiến trúc cho các ứng dụng WinForms?
- 5. Sự kiện đóng cửa sổ trong ứng dụng winforms
- 6. Dải cao su đầy trong Ứng dụng Winforms
- 7. Tạo một nút hình ảnh trong .NET Ứng dụng Winforms
- 8. Hỗ trợ nhiều ngôn ngữ trong một ứng dụng Winforms
- 9. MonoDevelop trong windows
- 10. Mã định dạng Trong MonoDevelop
- 11. Cách nhúng ứng dụng Bảng điều khiển bên trong ứng dụng Winforms
- 12. Thiếu ứng dụng web khi xây dựng dự án MVC4 trong MonoDevelop trên OS X 10.7.4
- 13. Sử dụng các biến môi trường trong Monodevelop với MonoTouch
- 14. Tích hợp "Trợ giúp" vào ứng dụng WinForms
- 15. Cách thêm cửa sổ WPF vào ứng dụng WinForms
- 16. Tại sao các ứng dụng WinForms STAThread theo mặc định?
- 17. Mẫu MVC/MVP winforms Ứng dụng (không tầm thường)
- 18. Địa phương hóa thích hợp của ứng dụng WinForms
- 19. Làm thế nào để viết một ứng dụng WinForms lớn?
- 20. Không thể nhấn breakpoint trong MonoDevelop
- 21. Kiểm tra phiên bản .Net từ ứng dụng WinForms
- 22. MonoDevelop trên Windows
- 23. Hành vi xử lý ngoại lệ trong ứng dụng WinForms, sử dụng hộp thoại phương thức
- 24. Có thể sử dụng Aero Peek cho trẻ em MDI trong một ứng dụng winforms không?
- 25. Tôi có thể sử dụng điều khiển thuật sĩ nào trong ứng dụng WinForms?
- 26. "Tổ chức nhập khẩu" trong MonoDevelop
- 27. Ứng dụng sự kiện Application.ApplicationExit có được thông báo về thoát trong các ứng dụng không phải là Winforms không?
- 28. IDataErrorInfo trong winforms
- 29. Phát hiện chèn/tháo cổng Ethernet trong ứng dụng winforms của tôi?
- 30. Logic nghiệp vụ xâm nhập UI trong ứng dụng winforms lớn
Vâng, nhưng đó không phải là vấn đề, tôi chỉ muốn sử dụng MonoDevelop ... cho cả một loạt các lý do. –