2009-09-09 43 views
12

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

+2

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. –

Trả lời

10

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 #

5

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.

+0

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

4

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.

+0

Bạn cũng phải thêm tham chiếu vào Hệ thống –

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