PDA

View Full Version : سوال: نحوه طراحی فرم در حالت Design بصورتی که وقت اجرا هم، ظاهر فرم حفظ بشه !



sahel65
دوشنبه 07 مرداد 1392, 09:09 صبح
سلام به دوستان عزیزم؛
خسته نباشین.
دوستان به این شکل نگاه کنید:


108079

نحوه تشکیل این فرم به این شکله:
یک Panel ایجاد کردم با این خاصیت:

Anchor: Top,Bottom,Left,Right
داخل این پنل یک DataGridView گذاشتم که لیست پرسنل رو میخوام نشون بده. البته چون DataGridView رو بصورت کد نوشتم ؛ تو این حالت دیده نمیشه.

حالا یک Gropubox هم تعریف کردم؛ که البته برای این پنل دیگه ای درست نکردم، یعنی پنل 2 ندارم، آیا باید درست کنم؟
خب حالا خاصیت Groupbox هم به این صورت هستش:

Anchor: Top,Left
Dock: Bottom

حالا هدف من از این کار این هستش که وقتی کاربر در بالا یعنی همون DataGridView رو هر پرسنلی رفت در قسمت پایین که در اینجا Groupbox هستش یه سری دکمه بذارم مثل ویرایش، حذف و غیره که بتونه کارشو انجام بده.
حالا چیکار کنم که دقیقا صفحه نصب بشه ؛ یعنی 50% به قسمت پنل اول و 50% به Groupbox اختصاص پیدا کنه.
شکل رو وقتی که برنامه اجرا میشه ببینید:


108080


من نمیخوام Groupbox اینقدر پایین باشه ؛ میخوام دقیقا هر کدوم از بخشهام؛ مثل پنل یک که شامل DG هستش نصف صفحه و این بخش هم نصف صفحه رو بگیرن که فرم شکیل تر بشه.
ممنون میشم اگه راهنماییم کنید.

الهام الهام
دوشنبه 07 مرداد 1392, 09:29 صبح
شما باید در قسمت propertis

anchor hasho tanzim konid

amir200h
دوشنبه 07 مرداد 1392, 09:50 صبح
شما باید Anchor دیتاگریدتون هم بصورت Top,Bottom,Left,Right بزارین

sahel65
دوشنبه 07 مرداد 1392, 13:15 عصر
این کد رو ببینید:

dg.AllowUserToResizeRows = false;
dg.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dg.AllowUserToAddRows = false;
dg.AllowUserToDeleteRows = false;
dg.AllowUserToResizeRows = false;
dg.RowHeadersWidthSizeMode =DataGridViewRowHeadersWidthSizeMode.DisableResizi ng;
dg.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableRes izing;
dg.Anchor = (AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom | AnchorStyles.Top);
dg.Show();

خط انتهایی یعنی این خط رو:

dg.Anchor = (AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom | AnchorStyles.Top);
رو پس از گفته شما گذاشتم؛ ولی همچنان نصف بیشتر صفحه در اختیار پنل یک هستش و یک سوم صفحه در اختیار groupbox !

amir200h
دوشنبه 07 مرداد 1392, 13:20 عصر
حالا چه اسراری دارین با کد دیتاگریدتونو بزارین؟ خوب مثل panel بزارین رو فرمتون.
من الان تست کردم و بدرستی کار میکرد و مشکل شمارو نداشت

sahel65
چهارشنبه 09 مرداد 1392, 12:08 عصر
راستش رو بخواین آخه دوست داشتم از طریق کد نویسی اینکار رو انجام بدم. :گریه::گریه::ناراحت:
میخواستم دلیلشو بدونم و اینکه چرا نمیشه؟ برنامه م رو میتونم براتون ضمیمه کنم؟

Ghaem66
چهارشنبه 09 مرداد 1392, 13:28 عصر
وقتی که anchor رو تنظیم میکنید دیگه نباید dock رو مشخص کنید. dock رو همون none بذارید

amir200h
چهارشنبه 09 مرداد 1392, 13:44 عصر
راستش رو بخواین آخه دوست داشتم از طریق کد نویسی اینکار رو انجام بدم. :گریه::گریه::ناراحت:
میخواستم دلیلشو بدونم و اینکه چرا نمیشه؟ برنامه م رو میتونم براتون ضمیمه کنم؟

ضمیمه کنین روش کار میکنیم ببینیم اشکال از کجاست

sahel65
پنج شنبه 10 مرداد 1392, 18:37 عصر
سلام ؛
ممنونم ازتون؛ برنامه رو ضمیمه کردم؛ فقط قسمت DB و جایی که نوشتم yourdb رو لطفا یه اتصال به بانک خودتون ایجاد کنید. ممنونم.
همچنین table بانک رو هم براتون فرستادم.
108313

108314

llMMDll
پنج شنبه 10 مرداد 1392, 19:46 عصر
سلام
چیزی که شما میخواهید با SplitContainer به راحتی قابل اجراست.

amir200h
پنج شنبه 10 مرداد 1392, 20:25 عصر
الان دقیقا مشکلتون چیه؟
برنامه تون اجرا نمیشد که خطاشو گرفتم. الان مشکل دیگه ای دارین؟

sahel65
جمعه 11 مرداد 1392, 20:48 عصر
ممنون عزیزم؛ ولی برنامه بخوبی اجرا میشه و ایرادی نداشت.
ممکنه خطای بانک بوده که گفتم تنظیمات DB خودتون رو بیزحمت بذارین داخل قسمت connection .
تنها سوال من نحوه تقسیم صفحه م به دو بخش هستش، یک بخش جهت دیدن پرسنل تو DataGridView و یک بخش هم جهت گذاشتن کلیدهای کنترلی از قبیل ویرایش ، حذف و غیره.
میخوام این دوبخش دقیقا هم اندازه باشن تا از نظر بصری قشنگ تر دیده بشن، الان همونطور که تو پست اولم گذاشتم پنل اولی ارتفاعش تقریبا دو برابر Groupbox هست که من نمیخوام اینجوری باشه.
میخوام هر کدوم از بخشهام 50% ارتفاع رو بگیرن.
میخوام با یه روش استاندارد این کار رو انجام بدم.

CsharpNevisi
جمعه 11 مرداد 1392, 21:05 عصر
ممنون عزیزم؛ ولی برنامه بخوبی اجرا میشه و ایرادی نداشت.
ممکنه خطای بانک بوده که گفتم تنظیمات DB خودتون رو بیزحمت بذارین داخل قسمت connection .
تنها سوال من نحوه تقسیم صفحه م به دو بخش هستش، یک بخش جهت دیدن پرسنل تو DataGridView و یک بخش هم جهت گذاشتن کلیدهای کنترلی از قبیل ویرایش ، حذف و غیره.
میخوام این دوبخش دقیقا هم اندازه باشن تا از نظر بصری قشنگ تر دیده بشن، الان همونطور که تو پست اولم گذاشتم پنل اولی ارتفاعش تقریبا دو برابر Groupbox هست که من نمیخوام اینجوری باشه.
میخوام هر کدوم از بخشهام 50% ارتفاع رو بگیرن.
میخوام با یه روش استاندارد این کار رو انجام بدم.

ببین این میتونه کارتو را بندازه .......... !!!!!!!

llMMDll
شنبه 12 مرداد 1392, 01:08 صبح
ممنون عزیزم؛ ولی برنامه بخوبی اجرا میشه و ایرادی نداشت.
ممکنه خطای بانک بوده که گفتم تنظیمات DB خودتون رو بیزحمت بذارین داخل قسمت connection .
تنها سوال من نحوه تقسیم صفحه م به دو بخش هستش، یک بخش جهت دیدن پرسنل تو DataGridView و یک بخش هم جهت گذاشتن کلیدهای کنترلی از قبیل ویرایش ، حذف و غیره.
میخوام این دوبخش دقیقا هم اندازه باشن تا از نظر بصری قشنگ تر دیده بشن، الان همونطور که تو پست اولم گذاشتم پنل اولی ارتفاعش تقریبا دو برابر Groupbox هست که من نمیخوام اینجوری باشه.
میخوام هر کدوم از بخشهام 50% ارتفاع رو بگیرن.
میخوام با یه روش استاندارد این کار رو انجام بدم.


سلام
چیزی که شما میخواهید با SplitContainer به راحتی قابل اجراست.


از ما گفتن بود

sahel65
شنبه 12 مرداد 1392, 18:41 عصر
دوست عزیز ؛ فکر کنم به یه جاهایی رسوندینش ولی چون میخوام Maximize باشه تصویر رو در هنگام بزرگ شدن ببینید؛ همچنین یه پیغام خطا میده! بنظرتون از ورژنی هست که من دارم؟2008 ؟
ولی در مجموع تقریبا همونی هست که میخوام، یعنی الان 50% به هر بخش اختصاص داده شده. میشه روش کار رو بگید؟ با کد نویسی انجام دادین یا خیر؟
ممنونم ازتون


108431

CsharpNevisi
شنبه 12 مرداد 1392, 19:45 عصر
من کار خواصی نکردم ... فقط اودم تو رویداد ریسایز فرم .... ارطفاع پنل و گروپ باکسو نصف ارطفاع فرم قرار دادم ..... این ارورم ربطی به کدهای من نداره .... چون کدی که من نوشتم خیلی چیز مبتدییه .... !!!!
کدهای منو تو یه پروژه جدید تست کن ... !!!

میخوام Maximize باشه تصویر رو در هنگام بزرگ شدن ببینید
متوجه منظورتون نشدم ... !!