PDA

View Full Version : طریقه اجرای تنها یک فرم



salehvasaleh
چهارشنبه 30 تیر 1389, 18:24 عصر
فرض کنید بر روی فرم 1 دکمه ای ساخته ایم که با زدن اون فرم دیگری باز شود.برای اینکه کاری کنیم که کاربر در فرم جدید به رویداد خواسته شده پاسخ دهد و بعد از پاسخ بتواند به فرم 1 بازگردد باید چکار کنیم؟ حالتی مد نظرم هست که کاربر تا به رویداد فرم 2 پاسخ ندهد نتواند به فرم 1 برود. حتی در حالتی که فرم 2 باز شده امکان دسترسی به فرم 1 نباشد.

Salar Ashgi
چهارشنبه 30 تیر 1389, 18:36 عصر
شما میتوانید هنگام نمایش فرم2 ، فرم 1 رو Hide کنید .

salehvasaleh
چهارشنبه 30 تیر 1389, 18:39 عصر
شما میتوانید هنگام نمایش فرم2 ، فرم 1 رو Hide کنید .
از پاسختون ممنون. ولی حالتی رو می خوام که فرم 1 هم نمایش داده بشه ولی قابل دسترسی نباشه. چه راهنمایی دارید؟

saeedr22
چهارشنبه 30 تیر 1389, 18:51 عصر
سلام دوست عزیز


اگه منظورتون اینه که از فرم 2 که توسط فرم یک باز شده یه مقداری رو به فرم 1 بفرستین می تونم یه راهی رو پیشنهاد کنم که البته فقط واسه راه انداختن کارتون.
می تونین یه متغیر به صورت استاتیک تو یه کلاس دیگه تعریف کنین و ازفرم 2 اونو مقدار دهی کنین بعدش می تونین مٍثلاً توفرم 1 mouse move اونو بخونین

salehvasaleh
چهارشنبه 30 تیر 1389, 19:02 عصر
سلام دوست عزیز




اگه منظورتون اینه که از فرم 2 که توسط فرم یک باز شده یه مقداری رو به فرم 1 بفرستین می تونم یه راهی رو پیشنهاد کنم که البته فقط واسه راه انداختن کارتون.
می تونین یه متغیر به صورت استاتیک تو یه کلاس دیگه تعریف کنین و ازفرم 2 اونو مقدار دهی کنین بعدش می تونین مٍثلاً توفرم 1 mouse move اونو بخونین

ممنون از پاسختون. ولی منظروم این طور حالتی نیست. فرض کنید روی فرم یک دکمه ای به نام درج اطلاعات وجود داره که کاربر بعد از زدن اون می خواد در فرم کوچکی که باز می شه اطلاعات رو وارد کنه و تا زمانی هم که دکمه تایید رو نزنه نتونه به فرم 1 برگرده. چه راه حلی دارید؟سپاس

mirhosseini
چهارشنبه 30 تیر 1389, 19:05 عصر
از رویداد Activated مربوط به فرم استفاده کن و تا زمانی که کار در فرم دوم انجام نشد به محض ورود به فرو اول فرم دوم رو مجددا نمایش بده

---------------------------------------------------------------------------------------
http://www.shosbi.com
سایت یا وبلاگتان را به طور رایگان ثبت کنید! تبلیغات و درج آگهی رایگان در سایت شاسبی!
http://www.shosbi.com
با جستجو در آگهی ها ، سایت ها و وبلاگ های شاسبی نیازمندیهای خو در اینترنت را برطرف سازید.
http://www.shosbi.com

محسن شامحمدی
چهارشنبه 30 تیر 1389, 19:12 عصر
من فکر می کنم منظورتون اینه:

Form2 frm=new Form2() ;
frm.ShowDialog();
این کد فرم 2 رو میاره روی فرم 1 و فقط می شه با فرم 2 کار کرد.
راه اصولی همینه

Salar Ashgi
چهارشنبه 30 تیر 1389, 19:12 عصر
میتونید از پراپرتی Enabled فرم 1 استفاده کنید :

در داخل فرم 1 هنگام نمایش فرم 2 :



private void button1_Click(object sender, EventArgs e)
{
new Form2().ShowDialog();
this.Enabled = false;
}
بعد در رویداد خروج فرم 2 ، پراپرتی Enabled فرم 1 روی True کنین .

البته همانطور که 09111111111 (http://www.barnamenevis.org/forum/member.php?u=59254) گفتن ، اگه Show کردن فرم 2 رو با متود Show Dialog انجام بدین ، دیگه

نیازی به Enabled نیست .

salehvasaleh
چهارشنبه 30 تیر 1389, 19:19 عصر
از رویداد Activated مربوط به فرم استفاده کن و تا زمانی که کار در فرم دوم انجام نشد به محض ورود به فرو اول فرم دوم رو مجددا نمایش بده

---------------------------------------------------------------------------------------
http://www.shosbi.com
سایت یا وبلاگتان را به طور رایگان ثبت کنید! تبلیغات و درج آگهی رایگان در سایت شاسبی!
http://www.shosbi.com
با جستجو در آگهی ها ، سایت ها و وبلاگ های شاسبی نیازمندیهای خو در اینترنت را برطرف سازید.
http://www.shosbi.com

ضمن تشکر یک سوال. برای این رویداد چه باید بنویسم؟ رویداد رو دیدم اما نفهمیدم چی باید بنویسم؟

mirhosseini
چهارشنبه 30 تیر 1389, 19:38 عصر
Public Class Form1
Dim newForm As New Form
Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
If newForm.Visible Then newForm.BringToFront()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
newForm.Text = "New Form"
newForm.Show()
End Sub
End Class
--------------------------------------------------------------------------------------

Salar Ashgi
چهارشنبه 30 تیر 1389, 20:07 عصر
[code]
Public Class Form1
Dim newForm As New Form
Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
If newForm.Visible Then newForm.BringToFront()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
newForm.Text = "New Form"
newForm.Show()
End Sub
End Class
[/code

دوست عزیز ، اینجا تالار #C هستش ، نه VB !:متفکر:

ACorvinus
چهارشنبه 30 تیر 1389, 20:12 عصر
سلام.

گلم در رویداد Button1_Click در فرم یک اینو بنویس:

new Form2().ShowDialog();

حالا در رویداد Form2_Closing اینو میتونی بنویسی (یعنی فرم وقتی بسته بشه که عملیات مد نظر شما در فرم توسط کاربر انجام شده باشه):

private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
if (!(Validation())) e.Cancel = true;
}

private bool Validation()
{
int count =0;
if (string.IsNullOrEmpty(this.textBox1.Text))
count++;
if (string.IsNullOrEmpty(this.textBox2.Text))
count++;

if (count == 0) return true; else return false;
}

salehvasaleh
پنج شنبه 31 تیر 1389, 12:54 عصر
من فکر می کنم منظورتون اینه:

Form2 frm=new Form2() ;
frm.ShowDialog();
این کد فرم 2 رو میاره روی فرم 1 و فقط می شه با فرم 2 کار کرد.
راه اصولی همینه
ممنون با همین روش مشکلم حل شد.