PDA

View Full Version : سوال: انتقال تعداد زیادی کنترل از فرمی به فرم دیگر



mehrdad1991h
جمعه 24 خرداد 1392, 12:30 عصر
سلام
یه فرم طراحی کردم
به درخواست مشتری بخش ستینگش را در همون فرم اصلی قرار دادم
بعد الان مشتری پیشمون شده میگه یه فرم جدید باشه بخش تنظیماتش !
خوب الان من با تعداد زیادی کنترول و کد هایی که همه جای فرم 1 هست مواجه هستم
کنترل ها را که خوب همینجوری کپی پیست میکنم در فرم دیگرم اسمشون ثابت میمونه
الان مشکلی که هست رویدادشون هست و کدها !
راهی هست که بشه همه را با هم کپی کرد در یک فرم دیگه یعنی یه کنترل با رویداد و کد های رویداد از فرم 1 کپی بشه در فرم 2
یا اینکه باید بشینم دستی دونه دونه این کار را برای همه انجام بدم ؟

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

hessam2003
جمعه 24 خرداد 1392, 12:55 عصر
سلام.
دوست عزیز شما از ارث بری باید استفاده کنید.
یک فرم بسازید به عنوان فرم فرزند و بعد از فرم پدر همون فرم اصلیتون ارث ببرید.
بعدشم باید تمامی private های فرم پدرتونو به public تبدیل کنید تا فرم فرزند بتونه تغییرات بده.
موفق باشید.

mehrdad1991h
جمعه 24 خرداد 1392, 16:42 عصر
سلام.
دوست عزیز شما از ارث بری باید استفاده کنید.
یک فرم بسازید به عنوان فرم فرزند و بعد از فرم پدر همون فرم اصلیتون ارث ببرید.
بعدشم باید تمامی private های فرم پدرتونو به public تبدیل کنید تا فرم فرزند بتونه تغییرات بده.
موفق باشید.

سلام
ممنون از راهنماییتون
نفهمیدم چی شد !
الان یعنی من باید اون تنظیماتی که تو فرم اصلی هست را نگهشون دارم ولی مخفیشون کنم که کاربر نبینه بعد تو یه فرم دیگه کپی کنم و فرم را فرزندش کنم ؟
یا اینکه همه را انتقال بدم تو اون یکی فرم و ارث بری بشه ؟ خوب چجوری الان قراره بفهمه کودوم کلیک فعاله تو کودوم تکست باکس چیه و.... ازش مگه نمونه سازی نمیکنیم هر بار نمونه قبلی را برگردونه که هیچی
اقا اخرش این که نفهمیدم چجوری شده
لطفا یه مثال بزارید برام (اگر امکانش هست و مقدوره تا بفهمم باید چجوری بکنم)
ببخشید ولی براتون امکانش هست به یک فرم که یه چک باکس و تکس باک داشته باشه یه نمونه مثال بزنید ؟

بازم sorry
سپاس

mehrdad1991h
شنبه 25 خرداد 1392, 00:36 صبح
سلام
خوب اگه اینجوریه که همین کار را داشتم میکردم یه روش بهتر میخواستم
چون کل کدنویسی من در فرم 1 به هم میخوره
مثلا تو فرم 1 رو یک دکمه کلیک میکنم میگم اگه در بخش ستینگ فلان چکباکس چک خورده بوده این کار را بکن وگرنه اون کار را بکن
اخه یکی دوتا ستینگ هم نیست که باید بشینم کل کدهام را بررسی کنم ببینم چی به چی بوده بعد ستینگ را ( از تو فایل/دیتابیس/بخش ستینگ خود برنامه ) بخونمش به جا اینکه یه چک باکس مثلا چک بشه .

خلاصه که فک میکنم یه دور باید کل کد نویسی را مرور کنم !!!

به خاطر این میگفتم راهی نیست ساده تر بهتر و.... ؟

باز هم سپاس از وقتی که برای پاسخ به بنده گذاشتید
سپاس

ashkan1234
شنبه 25 خرداد 1392, 11:32 صبح
سلام!
اگه اون چیزیه که بنده متوجه شدم کار سختی قرار نیست بکنید!
همونطور که آقا حسام فرمودند تشریف میبرید در قسمت دیزاین فرم(مثلا Form1.Designer.cs)
و تمام کنترل ها را از Private به Public تغییر بدید!
بعد میتونید از تمام کنترلهای اون فرم در فرم دیگر استفاده کنید!
امیدوارم منظورتون همین بوده باشه!:لبخند:

mehrdad1991h
شنبه 25 خرداد 1392, 16:39 عصر
اخه فرقش در اینه که فرم فرزند روی فرم پدر تغییراتی قرار نیست انجام دهد
این که من برم در Form1.Designer.cs تمام کنترل ها را از Private به Public تغییر بدم سودی برام نداره !
چون تو فرم پدر (Form1) میریم و تنظیمات را از فرم فرزند میخونیم (مثلا در فرم پدر میگیم اگر داخل فرم فرزند چک باکس چک داشت 1+1 کن در غیر اینصورت 0 نشون بده)

خوب بابا برا اینکه بتونیم به کنترل های داخل فرم فرزند دسترسی داشته باشیم هم باید کنترل های فرم فرزند را پابلیک کنیم نه فرم پدر را و حالا از فرم فرزند هم دائما داریم نمونه سازی میکنیم برای دسترسی به کنترل هاش دیگه ؟ اینجاست که نمیشه و کار خراب میشه ! چون حجم و سرعت و کارایی برنامه و همه چیز را مورد تاثیر قرار میده نمونه سازی زیاد و به جای اینکه نمونه سازی کنم باید بیام تنظیمات را در یه فایل ذخیره کنم و به جای نمونه سازی تنظیمات را از توی فایل بخونمشون که در هر حال کل کد نویسی پروژه قاطی پاطی میشه باید بشینم دونه دونه چک کنم

الان منظور را گرفتید ؟
اصلا این هم یک نمونه
http://www.98up.ir/uploads/1371299032151.rar
خوب در پروژه ی تست میخوام کنترل های داخل تب ستینگ را ببرم تو یک فرم جدید
حالا شما کنترل ها را انتقال بدید میفهمید که در کد های باتن های موجود در تب Main هم باید تغییر اعمال کنید و هیچ راه دیگری نداره

ساده ترین راهی که الان به نظرتون میرسه چیه ؟ همون روش عادی ؟

سپاس

khokhan
شنبه 25 خرداد 1392, 18:16 عصر
اخه فرقش در اینه که فرم فرزند روی فرم پدر تغییراتی قرار نیست انجام دهد
این که من برم در Form1.Designer.cs تمام کنترل ها را از Private به Public تغییر بدم سودی برام نداره !
چون تو فرم پدر (Form1) میریم و تنظیمات را از فرم فرزند میخونیم (مثلا در فرم پدر میگیم اگر داخل فرم فرزند چک باکس چک داشت 1+1 کن در غیر اینصورت 0 نشون بده)

خوب بابا برا اینکه بتونیم به کنترل های داخل فرم فرزند دسترسی داشته باشیم هم باید کنترل های فرم فرزند را پابلیک کنیم نه فرم پدر را و حالا از فرم فرزند هم دائما داریم نمونه سازی میکنیم برای دسترسی به کنترل هاش دیگه ؟ اینجاست که نمیشه و کار خراب میشه ! چون حجم و سرعت و کارایی برنامه و همه چیز را مورد تاثیر قرار میده نمونه سازی زیاد و به جای اینکه نمونه سازی کنم باید بیام تنظیمات را در یه فایل ذخیره کنم و به جای نمونه سازی تنظیمات را از توی فایل بخونمشون که در هر حال کل کد نویسی پروژه قاطی پاطی میشه باید بشینم دونه دونه چک کنم

الان منظور را گرفتید ؟
اصلا این هم یک نمونه
http://www.98up.ir/uploads/1371299032151.rar
خوب در پروژه ی تست میخوام کنترل های داخل تب ستینگ را ببرم تو یک فرم جدید
حالا شما کنترل ها را انتقال بدید میفهمید که در کد های باتن های موجود در تب Main هم باید تغییر اعمال کنید و هیچ راه دیگری نداره

ساده ترین راهی که الان به نظرتون میرسه چیه ؟ همون روش عادی ؟

سپاس

اونقدر توضیح دادین که اصلا معلوم نشد آخرش کی چی می خواد :لبخند::لبخند::لبخند:

ببین منظورتون اینجوری بود

mehrdad1991h
یک شنبه 26 خرداد 1392, 00:40 صبح
ای بابا
نه بابا اینجوری نمیخوام که
شما اومدی کل کنترل های فرم 1 را با هرچی داشته انتقال دادی تو فرم 2
این کاری که شما کردی الان مثلا چه مزیتی داره مگه میخوام چی کار کنم که اینجوری کنم ؟ نکنه من.....
اینجوری که کاری نداره کل کد ها را کپی پیست میکنی تو فرم 2

من فقط تب دوم
یعنی فقط کنترل های موجود در تب ستینگ
را میخواستم انتقال بدم در فرم دوم

mail.hmeh
یک شنبه 26 خرداد 1392, 09:36 صبح
سلام.
خب هر فرمی از سه تا فایل تشکیل شده.فکر میکنم بتونید از اون سه تا فایل یه کپی بگیرید بریزید توی یکی دیگه پوشه بعد در vs با یه اسم دیگه ذخیره کنید و اونو به پروژه تون import کنید و تغییرش بدید