Vật vã cùng MonoDevelop >”<
Posted by moriator on October 1, 2008
Vì nhu cầu học tập C# trên trường, mình phải cài MonoDevelop. Mọi chuyện quả là chẳng dễ dàng chút nào khi MonoDevelop sử dụng GTK# để quản lý giao diện, khác hẳn với Winform trong Visual Studio (VS). Cách tạo giao diện, đứng dưới góc độ của VS thì MonoDevelop là quá chuối! Vật vã một hồi cũng có chút xí kinh nghiệm như sau.
1/ Muốn thêm 1 widget thì không đơn giản kéo-thả như trong VS mà phải tạo các Container trước. Thật sự các Container cũng không linh hoạt về kích thước và vị trí như VS nên giao diện nhìn rất là mất cân đối
.
2/ MonoDevelop mặc định không có class System.Windows.Forms. Nếu muốn sử dụng, bạn làm như sau:
- Mở Terminal cài 2 gói cần thiết: $ sudo apt-get install libmono-winforms1.0-cil libmono-winforms2.0-cil
- Mở 1 Solution trong MonoDevelop, click phải lên References -> Edit References, chọn thêm System.Windows.Forms.
3/ Các phương thức sự kiện trên MonoDevelop cũng khác với VS. Hix. Bây giờ mình đang có 1 rắc rối cần được giúp đỡ như sau. Mình tạo 1 textbox chỉ cho phép người dùng nhập số vào thôi. Mình muốn khi người dùng gõ 1 phím thì nó sẽ kiểm tra xem kí tự vừa gõ vào, nếu không phải là số thì sẽ không hiện kí tự đó vào trong textbox. Pro chỉ mình với nhá.
(Entry tiếp tục cập nhật nếu có phát hiện đau đầu nào khác)
Chúc vui!
October 2nd, 2008 at 9:05 am
1) GTK+ không phải WinForms, không đặt vị trí theo pixel mà nguyên tắc đặt do container qui định. Đọc thêm tài liệu về GTK+, một số container thường dùng là hbox, vbox và table. Còn vẫn khoái kiểu windows thì dùng container Fixed. Nếu cần thì chỉnh padding.. để nhìn đẹp hơn.
2) Sao không dùng SharpDevelop? Tui đoán SharpDevelop hỗ trợ WinForms mà. Hay VS, khỏi phàn nàn.
3) Xem thử signal “insert-text” (GtkEditable)
October 5th, 2008 at 8:22 pm
Lập trình C#,winform trên linux hả, thôi cho tao xin =))
October 14th, 2008 at 10:33 pm
Hồi trước e có cài MonoDevelop, nhưng mà bản cũ, xài khó khăn quá
Download bản mới về thì thiếu đủ thứ gói, cài mệt mỏi, chán quá lại chạy qua vs