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

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:

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:

4 Likes

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!

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é

2 Likes

mới search

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

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

1 Like

De ma ban

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

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

1 Like

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

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.

3 Likes

Tớ có 1 cái Main chính là MDI Parent, sau đó các menu sẽ cho phếp hiển thị các Form cấp 1, trong Form cấp 1 này tơ muốn hiển thị 1 cái Form11 con của Form1, sau đó lấy 1 hàng dữ liệu trong Form11 này để hiển thị 1 khu vực trong Form1 mà ko hiển thị 1 cái Form1 mới hoàn toàn thì fair làm sao các bác?

Cảm ơn bạn nhiều nhé. Mình đã làm được.

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