PDA

View Full Version : سوال: چگونه از Show بودن یک فرم مطلع شویم؟



fa_karoon
شنبه 29 تیر 1392, 12:29 عصر
سلام دوستان، طاعاتتون قبول
دنبال کدی می گردم که با اون بتونم تو یه فرم پدر شرط بذارم اگر فرم فرزند در حال Show هست و Open شده کار خاصی انجام بشه
لطفا راهنمایی کنید

Mani_rf
شنبه 29 تیر 1392, 13:09 عصر
this.MdiChildren یک لیست از فرزند های فعال فرم جاری بهت برمیگردونه که میتونی با 1حلقه نوع اونهارو با نوع فرمی که میخای چک کنی اگر که برابر بود یعنی بازه و مشخصاتشو داری

danialafshari
شنبه 29 تیر 1392, 13:11 عصر
تشخیص باز بودن فرم
if (Application.OpenForms["Form2Name"] != null)
{
// some code
}

fa_karoon
شنبه 29 تیر 1392, 13:56 عصر
می شه حلقه اش رو بنویسید هر کاری می کنم خطا می ده این کد من هست
البته ببخشید VB هست

Dim q As Boolean

For Each ChildForm As Form In Me.MdiChildren
ChildForm.Name = "TestForm"
q = True
Next

می گه که نمی تونم testform رو به form تبدیل کنم

fa_karoon
شنبه 29 تیر 1392, 14:08 عصر
سپاس جناب danialafshari (http://barnamenevis.org/member.php?68467-danialafshari)

Mani_rf
شنبه 29 تیر 1392, 14:10 عصر
به صورت کاملا اتفاقی من هم مدیر انجمن VB.Net هستم. اگر سوالات رو اونجا مطرح کنی جواب مرتبط تری میگیری.

For Each Frm As Form In Me.MdiChildren
If TypeOf (Frm) Is Form2 Then
MsgBox("Found.")
End If
Next

fa_karoon
شنبه 29 تیر 1392, 22:22 عصر
مرسی دوستان با روش جناب danialafshari حلش کردم، آقای mani_rf ممنون نکته خوبی رو یادم دادین مرسی
حالا یه مشکل دیگه دارم در واقع کاری که می خوام انجام بدم اینه که:
از یه نسخه از پروژه که روی یه سیستم دیگه است می خوام تشخیص بدم که آیا یه فرم خاص در یه نسخه دیگه از پروژه و روی
یه سیستم دیگه آیا باز هست؟
اگه دوستان می تونند راهنمایی کنند یا اگر لازم می دونید یه تاپیک جدا بزنم
مرسی

hojjatshariffam
یک شنبه 30 تیر 1392, 00:16 صبح
میس تونی از این استفاده کنی
ولی در همون اپلیکیشن
در اپلیکیشن دیگه فکر کنم باید از مسیج استفاده کنی

foreach (Form AppOpenForms in Application.OpenForms)
if (AppOpenForms.Name == "FormName")
{
AppOpenForms.....();
break;
}

danialafshari
یک شنبه 30 تیر 1392, 00:51 صبح
از یه نسخه از پروژه که روی یه سیستم دیگه است می خوام تشخیص بدم که آیا یه فرم خاص در یه نسخه دیگه از پروژه و روی
یه سیستم دیگه آیا باز هست؟
اگه دوستان می تونند راهنمایی کنند یا اگر لازم می دونید یه تاپیک جدا بزنم
اگر هر دو برنامه مال خودتون باشه فکر کنم بشه از راه Mutex حلش کرد
موفق باشید

Mahmoud.Afrad
یک شنبه 30 تیر 1392, 03:29 صبح
میس تونی از این استفاده کنی
ولی در همون اپلیکیشن
در اپلیکیشن دیگه فکر کنم باید از مسیج استفاده کنی

foreach (Form AppOpenForms in Application.OpenForms)
if (AppOpenForms.Name == "FormName")
{
AppOpenForms.....();
break;
}


بهتره به جای Name ، نوع فرم رو چک کنید.

foreach (Form frm in Application.OpenForms)
{
if (frm is Form2)
{
MessageBox.Show("Found!");
break;
}
}

fa_karoon
یک شنبه 30 تیر 1392, 11:49 صبح
اگر هر دو برنامه مال خودتون باشه فکر کنم بشه از راه Mutex حلش کرد
موفق باشید
مرسی دوست عزیز بله برنامه مال خودم هست، و چند نسخه از اون روی تمام سیستم های آموزشگاه که با هم شبکه هستن نصب می شه، بانکش هم که در یه سیستم سرور قرار می گیره
خودم داشتم به Socket Programming فکر میکردم که اول ارتباط رو از طریق IP برقرار کنم بعد یه Event رو فرخوانی کنم و کاری که می خوام رو انجام بدم،
در حال حاضر دارم درباره Mutex جستجو می کنم مرسی