View Full Version : [Nhờ vả] a e nào lập trình pro C# cho newbie hỏi với ạ
tuanvu2511
26-10-2011, 08:42
Chào các ae trong voz, e hiện tại mới tập tọe làm C# (Bài tập lớn đến đầu gổi giờ mới nhảy ạ), vừa mới làm đã bị mắc rồi, tình hình cụ thể của e là như thế này. Hiện tại e đang có 1 form Main là dạng MdiParent, 2 form Child A và B, đầu tiên e gọi form A,sau đó e lại gọi tiếp form B. E muốn sau khi gọi form B thì form A nó tự động đóng lại và ngược lại, nhưng tìm mãi ko biết làm kiểu gì, nghe nói diễn đàn mình có nhiều cao thủ về khoản này, mong các ae chỉ giáo, đừng :gach: e mà tội :(
Bạn gọi Form B từ đâu? Nếu gọi từ A thì truyền this vào Constructor của B, xong ở B thì gọi cái formAObj.Close() lại.
Còn nếu bạn gọi từ Main thì làm 1 cái GlobalObjects, cứ khởi tạo A hay B thì gán vào 1 cái biến static trong GlobalObjects, ở trong B khi muốn đóng A lại thì gọi GlobalObjects.AObj.Close().
Đây là ngu kiến của mình, còn nhiều cách khác tốt hơn, mọi người cứ đóng góp.
Chào các ae trong voz, e hiện tại mới tập tọe làm C# (Bài tập lớn đến đầu gổi giờ mới nhảy ạ), vừa mới làm đã bị mắc rồi, tình hình cụ thể của e là như thế này. Hiện tại e đang có 1 form Main là dạng MdiParent, 2 form Child A và B, đầu tiên e gọi form A,sau đó e lại gọi tiếp form B. E muốn sau khi gọi form B thì form A nó tự động đóng lại và ngược lại, nhưng tìm mãi ko biết làm kiểu gì, nghe nói diễn đàn mình có nhiều cao thủ về khoản này, mong các ae chỉ giáo, đừng :gach: e mà tội :(
Biết lập trình C#, biết câu trả lời nhưng ... chưa pro :go:
tạo 1 biến static trong a or b đều được , cho giá trị default để xác định đang nằm chỗ nào. vd khi ở a thì là 1 , khi ở b thì là 2 , rồi khi bắt đầu vào trong form kia thì check giá trị static này , tùy theo từng trường hợp mà close thôi .
tuanvu2511
26-10-2011, 09:03
Bạn gọi Form B từ đâu? Nếu gọi từ A thì truyền this vào Constructor của B, xong ở B thì gọi cái formAObj.Close() lại.
Còn nếu bạn gọi từ Main thì làm 1 cái GlobalObjects, cứ khởi tạo A hay B thì gán vào 1 cái biến static trong GlobalObjects, ở trong B khi muốn đóng A lại thì gọi GlobalObjects.AObj.Close().
Đây là ngu kiến của mình, còn nhiều cách khác tốt hơn, mọi người cứ đóng góp.
A và B là 2 form độc lập vs nhau, tất cả đều đc gọi từ main bạn ạ
tuanvu2511
26-10-2011, 09:03
Biết lập trình C#, biết câu trả lời nhưng ... chưa pro :go:
giúp e đi mà pre-bro :beauty:
P/S: Chủ thớt:
Có vài hướng giải quyết cho yêu cầu của chủ thớt, theo thiển ý của mình bạn có thể sử dụng các Event của Form như: Shown hoặc Activated của Form A để Close Form B và ngược lại :)
tuanvu2511
26-10-2011, 09:11
P/S: Chủ thớt:
Có vài hướng giải quyết cho yêu cầu của chủ thớt, theo thiển ý của mình bạn có thể sử dụng các Event của Form như: Shown hoặc Activated của Form A để Close Form B và ngược lại :)
bro có thể chỉ rõ cho mình được hơn ko? :byebye:
Chào các ae trong voz, e hiện tại mới tập tọe làm C# (Bài tập lớn đến đầu gổi giờ mới nhảy ạ), vừa mới làm đã bị mắc rồi, tình hình cụ thể của e là như thế này. Hiện tại e đang có 1 form Main là dạng MdiParent, 2 form Child A và B, đầu tiên e gọi form A,sau đó e lại gọi tiếp form B. E muốn sau khi gọi form B thì form A nó tự động đóng lại và ngược lại, nhưng tìm mãi ko biết làm kiểu gì, nghe nói diễn đàn mình có nhiều cao thủ về khoản này, mong các ae chỉ giáo, đừng :gach: e mà tội :(
dùng form.close đi bạn
tungthitcho
26-10-2011, 09:16
Nếu cả 2 cái đều được gọi từ MDI thì dùng 2 boolean để đóng mở thôi :">!
Ngu ý của mềnh là cái được show thì bạn dựng blnA = True
Khi mà click để hiển thị B thì check -> nếu blnA = True thì close A :(
Delegate cụng được!!:stick:
JackDaiHiep
26-10-2011, 09:16
khai báo biến formA, form B ra ngoài
Trong các hàm gọi form A, B thì khởi tạo form , mở A, đóng B
Bạn chắc chỉ khai báo biến form trong hàm nên khi sang hàm khác không gọi được form kia chứ gì :gach::gach::gach::gach::gach::gach::gach::gach::gach::gach::gach::gach::gach::g ach::gach::gach::gach::gach::gach::gach
public partial class Form1 : Form
{
private Form _formA;
private Form _formB;
public Form1()
{
InitializeComponent();
this._formA = new Form();
this._formA.Shown += _formA_Shown;
this._formB = new Form();
this._formB.Shown += _formB_Shown;
}
void _formB_Shown(object sender, EventArgs e)
{
if (this._formA != null)
this._formA.Close();
}
void _formA_Shown(object sender, EventArgs e)
{
if (this._formB != null)
this._formB.Close();
}
}
evola.tegrof
26-10-2011, 09:58
cứ tắt hết Form con đang bật rồi mở form cần mở thôi
em gà có gì sai các bác đừng gạch :sweat:
vBulletin® v3.8.0, Copyright ©2000-2013, Jelsoft Enterprises Ltd.