Làm thế nào để chuyển Form trong C#?

c-sharp

(Đăng Lê) #1

Mọi người cho mình hỏi làm cách nào để chuyển từ Form1 sang Form2 trong C#
Cụ thể là: Form1 là form Đăng nhập, Form2 là form chính , khi điền đúng thông tin và nhấp vào nút Đăng nhập thì Form1 đóng và Form2 mở lên! thank :smiley:


(there're only 10 types of people in the world: Those who understand binary & those who dont) #2

Mấy thứ nãy dễ mà :v:

Dùng MdiParent mà mở

Ví dụ trong form chính nhớ set MDI bên cột property, sau đó tạo 1 form phụ có tên abcxyz.

Tại cửa sổ form chính tạo 1 button, viết code cho button đó ví dụ như sau:

abcxyz f = new abcxyz();
            f.MdiParent = this;
            f.Show();

Còn không muốn phụ thuộc form chính thì nghiên cứu thử cách không dùng MDI, đơn giản hơn nhưng nó cũng có phần rắc rối hơn :smiley:


(Đăng Lê) #3

Mình vừa làm thử! Cách này không phải ý mình muốn làm! nó chỉ mở form mới chồng lên form cũ! mình muốn mở form mới độc lập đồng thời khi mở form mới thì form cũ phải tắt á! bạn biết chỉ mình luôn nha!


(there're only 10 types of people in the world: Those who understand binary & those who dont) #4

tạo 1 project mới, trong project mới có 1 form. b kéo 1 button ra đó, viết code như sau

abc f = new abc();
f.show();

Sau đó tạo 1 form mới có tên là abc.

hoặc làm ngược lại cũng được =)) không khác mấy code bên trên, cái này không dùng MDI. Còn muốn tự tắt thì this.close(); nhưng quan trọng là close ở đâu ;))

xem thêm videos ở đoạn gần cuối nhé


(Nam) #5

mới search

this.Hide();
Form2 form2 = new Form2();                    
form2.ShowDialog();
this.Close();

(Hieu Nguyen Van) #6

Mình cũng đang làm cái này nhưng là vb.net
bạn tham khảo. để có thể đăng xuất…đăng nhập tốt(lặp lại) bạn không nên new form

Giả sử bạn để formLogin hiện trước.frmMain show khi login thành công

if isLogin = true then
frmMain.show()
Me.Hide()

Và nếu đăng xuất thì ng lại

frmLogin.show()
Me.hide()

–Đó là những gì mình biết(Dùng new sẽ gặp lỗi khi đăng xuất-đăng nhập lại)
C# thay me = this thì phải


(Jony Hồ Trần) #7

De ma ban

from f = new from;
f.show();

(Bầu Sỹ) #8

Nếu code tắt form bạn viết trong form thứ 2 thì dùng this.Close(); để đóng, khi đóng cách này thì đối tượng sẽ mất, thông tin nhập từ form2 đó k thể truy cập, nếu bạn dùng this.Hide(); thì nó chỉ ẩn đi, thông tin được xử lý ở Form2 vẫn còn đó.
Nếu code tắt form bạn viết trong form chính thì dùng

Form2 form2=new Form2();
form2.Show();
form2.Hide();

Nếu muốn tạo Form2 mới thì phải new cái mới thôi


(Tôn Thất Hoàng Vũ) #9

cám ơn bạn nha, mình đã thử và thành công


(Loc) #10

Câu trả lời của các bạn đều giải quyết được vấn đề trước mắt. Và đều là ẩn form1 đi và show form2.
:+1: OK. nhưng nếu bạn cần 1 giải pháp triệt để, tham khảo link bên dưới:

For all other situations, use the Run(ApplicationContext) overload, which supports supplying an ApplicationContext object for better control over the lifetime of the application.

Hi vọng giúp được bạn, nhất là khi làm đồ án, mấy lão có thể sẽ hỏi cái này.


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?