PDA

View Full Version : سوال: مشکل با اجرای کد در فرم دیگر



ciscozagros
چهارشنبه 13 خرداد 1388, 12:47 عصر
سلام پس از جستجو فراوان می خواستم کمکم کنید
من یه فرم ورود اطلاعات دارم با دیتا گرید
یه دستور زیر یکی از دکمه ها نوشتم
یه فرم دیگه ایجاد کردم که مقداری رو برای این دستور میفرسته می خواستم وقتی از فرم دوم اطلاعت رو میفرستم همزمان دکمه فرم اول نیز کلیک بشه
در اصل میخوام کنترل روی فرم اول رو اجرا کنم

ciscozagros
چهارشنبه 13 خرداد 1388, 12:58 عصر
خود برنامه رو هم گذاشتم با بانکش

ciscozagros
چهارشنبه 13 خرداد 1388, 13:04 عصر
اینم برنامه خدایی کمکم کنید

NewFoxStudent
چهارشنبه 13 خرداد 1388, 13:51 عصر
دوست عزیز بهترین راه برای این کار اینه که توی فرم اول یه Property از نوع اطلاعاتی که قراره از فرم دوم بگیری ایجاد کنی
و بعد مقادیری رو که از فرم دوم میگیری توی اون پروپرتی بریزی و عملیات مورد نظرتو روی اون انجام بدی
این همون جوابی که توی تاپیک قبلیت که در همین مورد بود برات اجرا کردم
اگه این روش مشکل داره ممکنه مشکلش رو بگی

ciscozagros
چهارشنبه 13 خرداد 1388, 15:18 عصر
من تازه دارم با #C کار میکنم با get و set نمی دونم کار کنم
من کامل در مورد کاری که می خوام انجام بشه براتون توضیح میدم شاید روش بهتری بگید
من در فرم اول اطلاعاتی رو برای بانک می فرستم که با زدن دکمه ثبت هم اطلاعت ذخیره میشن هم اطلاعت داخل دیتا گرید نمایش داده میشه
حالا میخوام یه رکورد خاصی رو فراخوانی کنم که داخل دیتا گرید نمایش بده به همین خاطر یه فرم دیگه باز کردم یه تکست باکس گذاشتم با یه دکمه بنام جستجو یه کلاس ساختم با یه مقدار static که مقداری رو که دستور زیر دکمه نمایش داخل فرم اول هست رو تامین کنه حالا میخوام رکورد خاصی رو داخل دیتا گرید ببینم توسط فرم دیگه اگه میشه کمکم کنید ثواب داره

bahar_engineer
چهارشنبه 13 خرداد 1388, 16:04 عصر
درست شد

مشکلت این بود که انتظار داشتی روی فرم قبلی لیبلت چاپ بشه ... وقتی روی دکمه کلیک می کنی باید فرم دوباره لود بشه تا نتایج رو نشونت بده چون داری توی یه فرم دیگه تغییر می دی نه همین فرم...

پس یه بار دیگه من توی رویداد کلیک جستجو گذاشتم که فرم 1 لود بشه ...

حالا می تونی تغییرات ایجاد شده رو مشاهده کنی

پروژه رو دانلود کن و ببین

ciscozagros
چهارشنبه 13 خرداد 1388, 17:49 عصر
خیلی عالی بود ولی یه مشکل هست اونم اینه که فرم اولی هنوز سر جاشه

NewFoxStudent
چهارشنبه 13 خرداد 1388, 18:12 عصر
خیلی عالی بود ولی یه مشکل هست اونم اینه که فرم اولی هنوز سر جاشه

جسارتا این روشی دوست خوبم bahar_engineer (http://barnamenevis.org/forum/member.php?u=90222) استفاده کردن کاملا اشتباه
با این کار شما مطمئنا به مشکل میخورید
حداقل باید توی فرم دوم نمونه جدیدی از فرم اول ساخته نشه و با همون نمونه موجود کار بشه
اینجوری اگه کاربر بخواد 10 بار جستجو انجام بده 10 تا نمونه از فرم یک ساخته میشه
علاوه بر این توی برنامه نویسی شی گرا ارسال اشیا به متدها کار درستی نیست و باید بجای اشیا از مقادیر برای ارتباط استفاده کنید
اگه میخواهید با C# برنامه نویسی رو ادامه بدید پیشنهاد میکنم برای این مشکلتون راه دیگه ای پیدا کنید

NewFoxStudent
چهارشنبه 13 خرداد 1388, 18:24 عصر
ببینید شما باید در عمل کار زیر رو انجام بدید
اول باید یه پروپرتی توی فرم یک برای دریافت کد از فرم دو بسازید
بعد باید فرم دو رو به صورت Dialog اجرا کنید و توی رویداد کلیک دکمه جستجو با دستور زیر نمونه موجود از فرم یک رو به دست بیارید


Form1 frm =(Form1)Application.OpenForms["Form1"];

و بعد مقداری رو که کاربر وارد کرده به اون پروپرتی از فرم یک بدید


frm.PersopertyName = textBox1.Text;

وبعد مقدار DialogResult فرم دو رو توی همون رویداد برابر با OK قرار بدید


this.DialogResult = DialogResults.Ok;

با این کار فرم دو بسته میشه و توی رویداد کلیک Button4 تو فرم یک میتونید عمل جستجو رو انجام بدید
کل کد به صورت زیر

تعریف پروپرتی توی فرم یک

string codevalue;
internal string CodeValue
{
set { codevalue = value; }
get { return codevalue; }
}

رویداد کلیک دکمه جستجو در فرم دو


private void button1_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text))
this.DialogResult = DialogResult.Cancel;
else
{
Form1 frm = (Form1)Application.OpenForms["Form1"];
frm.CodeValue = textBox1.Text;
this.DialogResult = DialogResult.OK;
}

}

رویداد کلیک دکمه جستجو در فرم یک


private void button4_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
if (frm.DialogResult == DialogResult.OK)
{
//دستورات مربوط به جستجو بر اساس کد
}
else
{
//نمایش پیغام مبنی بر این که جستجو انجام نمیشود به دلیل عدم ورود کد توسط کاربر
}
}

NewFoxStudent
چهارشنبه 13 خرداد 1388, 18:27 عصر
باز هم تاکید میکنم تغییر سطح دسترسی یک شی توی یک فرم برای دسترسی به اون از طریق فرم های دیگه کار خیلی خیلی اشتباهیه اگرچه راحت ترین راه

Mahdi.Kiani
پنج شنبه 14 خرداد 1388, 10:46 صبح
تکراری/ جستجو کنید./(از هر 5 تاپیک در این بخش، یکیش در این مورد می باشد) دلیل نداره هرکسی که در این مورد سوال، ایراد و مشکل داره، یک تاپیک جدا ایجاد کنه./
تاپیک های مشابه را پیدا کنید و در آن ها به ادامه بحث بپردازید. با این کار حداقل خواهید دانست که چه جواب هایی تا کنون به ان داده شده است ./
تمامی کاربران شرکت کننده در این تاپیک جریمه خواهند شد./

ciscozagros
شنبه 16 خرداد 1388, 09:25 صبح
از زحمات شما بسیار متشکرم همه اون کارایی روه که گفتید انجام دادم ولی نتیجه نگرفتم میشه خودتون یه اصلاحی رو برنامه ایجاد کنید برای من به بفرستید