PDA

View Full Version : سوال: نام فرم فعال را چطوری بفهمیم؟



sadaf_
شنبه 15 مهر 1391, 11:40 صبح
چطوری می شه فهمید فرم فعالی نامش چیست؟
مثلا 10 تا فرم در فرم اصلی باز هستش
از بین اینها فقط یکی رو قرار می گیره
1_حالا اسم این فرم فعال را چطوری به دست بیارم؟
2_اگر فرم زیری را فعال کرد چطوری بلافاصله بفهمم؟
ممنون

morteza271
شنبه 15 مهر 1391, 12:20 عصر
یه متغیر عمومی تعریف کنید از نوع مثلا Form
بعد در رویداد Activated فرمهاتون کد زیر رو بنویسید :

Class1.ActiveForm = this;
بعد دیگه اسم فرم جاری رو دارین.

البته من در اینجا یه متغیر داخل یه کلاس تعریف کردم تا همه جا بهش دسترسی داشته باشم.

sadaf_
شنبه 15 مهر 1391, 15:24 عصر
اشکالی که این روش داره اینه که برای همه فرمها باید این دستور را نوشت
آیا روشی نیست که فرم Main تشخیص بده که چه فرم فرزندی الان فعال هستش؟

Y_Safaiee
شنبه 15 مهر 1391, 16:03 عصر
با سلام خدمت شما دوست عزیز

راحت ترین کار اینه که یه تایمر تو فرم اصلی بزاری و کد زیر رو توش بنویسی بعد این تایمر مثلا هر ثانیه نام فرم جاری و فعال رو برگردونه اگه با قبلی یکی نبود میتونی پردازش لازم رو انجام بدی :


try
{
string Strfrm =Form.ActiveForm.Text.ToString();
MessageBox.Show(Strfrm);
}
catch { }


موفق باشی
بایت بایت

sadaf_
شنبه 15 مهر 1391, 16:07 عصر
با سلام خدمت شما دوست عزیز

راحت ترین کار اینه که یه تایمر تو فرم اصلی بزاری و کد زیر رو توش بنویسی بعد این تایمر مثلا هر ثانیه نام فرم جاری و فعال رو برگردونه اگه با قبلی یکی نبود میتونی پردازش لازم رو انجام بدی :


try
{
string Strfrm =Form.ActiveForm.Text.ToString();
MessageBox.Show(Strfrm);
}
catch { }


موفق باشی
بایت بایت

این هم خوبه اما منطقی به نظر نمی یاد
ببینید وقتی فرم فرزند را اضافه می کنیم باید بتونیم به راحتی نام فعال را به دست بیاریم

Mahmoud.Afrad
سه شنبه 18 مهر 1391, 11:50 صبح
از پراپرتی زیر استفاده کنید
Form.ActiveForm.Name