سوال؟؟؟

alireza_75

Member
سلام دوستان عزیز
من می خوام یه برنامه با c# بنویسم که در بالای صفحه از منو استفاده می کنم
حالا می خوام بدونم چه جوری می تونم آیتم ها یا همون صفحه مربوط به یه زیر منو را در صفحه اصلی نشون بدم.
می دونم یه راهش اینه که از یه کنترل برای هر زیر منو استفاده کنم و با true و false کردن visible آیتم ها صفحه مربوط به یک زیر منو را نشون بدم.
آیا راه آسون تری هم داره؟

:-?
ممنون
 

the_king

مدیرکل انجمن
سلام دوستان عزیز
من می خوام یه برنامه با c# بنویسم که در بالای صفحه از منو استفاده می کنم
حالا می خوام بدونم چه جوری می تونم آیتم ها یا همون صفحه مربوط به یه زیر منو را در صفحه اصلی نشون بدم.
می دونم یه راهش اینه که از یه کنترل برای هر زیر منو استفاده کنم و با true و false کردن visible آیتم ها صفحه مربوط به یک زیر منو را نشون بدم.
آیا راه آسون تری هم داره؟

:-?
ممنون

متاسفانه متوجه منظورتان نمی شوم. منوی اصلی که معمولا بالای فرم قرار می گیره کنترل MenuStrip ئه.
MenuStrip می تونه خودش زیر منو داشته باشه اما زیر منو به MenuStrip اصلی متصله. از اونجایی که MenuStrip منوی
اصلی فرم ئه، محل نمایش اش زیر منو هاش از قبل مشخص میشه.

یک کنترل ContextMenuStrip هم داریم که ظاهر اش شبیه زیر منو های MenuStrip ئه اما به جایی متصل نیست
مگر اینکه خودتان متصل اش کنید. همچنین نشون داده نمیشه مگر اینکه خودتان مشخص کنید که کجا نمایش داده بشه.
مزیت ContextMenuStrip در اینه که می توانید یک نمونه اش را بسازید ولی چند جا نمایش اش دهید، فرضا چه روی یک
دکمه کلیک کنید، یا چه روی آیتم File منوی اصلی کلیک کنید و چه روی PictureBox تون راست کلیک کنید، ContextMenuStrip1 نشون داده بشه.

هر کدوم از آیتم های MenuStrip یک مشخصه DropDown دارند، اگر DropDown شان را روی یک ContextMenuStrip
تنظیم کنید، با کلیک کردن روی آن منو، ContextMenuStrip مورد نظر به عنوان زیر منو نمایش داده می شود.
همچنین اغلب کنترل های دیگر یک مشخصه ContextMenuStrip دارند، می توانید روی یک نمونه تنظیم اش کنید
تا موقع راست کلیک کردن نمایش داده شوند.

حالا شما می توانید در کد تان موقع اجرا مشخصه DropDown را null کنید، یا روی یک کنترل ای تنظیم کنید و ...
 

alireza_75

Member
سلام

منظورم اینه که من یک صفحه اصلی دارم یه منو هم در بالای صفحه
هر منو هم برای محاسبه یا یک گزارش است
حالا من می خوام مثلا روی زیر منوی 1 کلیک می کنم صفحه مربوط به خودش در صفحه اصلی نمایش داده بشه
روی زیر منوی 2 کلیک می کنم صفحه مربوط خودش نشون داده بشه


ممنون از پاسختون
 

turtel

Member
منو

سلام .ببین دوست عزیز من منظور شما را تا حدودی نفهمیدم من فکر کنم شما می خواهید بگید که منویی دارید و می خواهید روی گزینه های منو کلیک کردید صفحه مرتبط باز شود (اگر منظورتون این است شما باید برای هر منو کد ظاهر شدن صفحه را بنویسید)
Form2 ss()=new Form2();
ss.show();
این یه حالت مختصرش است .
 

the_king

مدیرکل انجمن
سلام

منظورم اینه که من یک صفحه اصلی دارم یه منو هم در بالای صفحه
هر منو هم برای محاسبه یا یک گزارش است
حالا من می خوام مثلا روی زیر منوی 1 کلیک می کنم صفحه مربوط به خودش در صفحه اصلی نمایش داده بشه
روی زیر منوی 2 کلیک می کنم صفحه مربوط خودش نشون داده بشه


ممنون از پاسختون

پیشنهادم اینه، برای هر گزارش بجای اینکه یک فرم جدید بسازید یک UserControl جدید بسازید، یا اگر الان فرم شون
رو ساخته اید محتویات فرم رو به یک UserControl منتقل کنید. UserControl فرق اصلی اش با فرم در اینه که
برای خودش کادر پنجره قابل جابجا کردن نداره و به عنوان یک کنترل داخل فرم نمایش داده میشه. در ضمن می توانید
چندین UserControl را حتی اگر از یک نوع باشند همزمان داخل یک فرم نمایش دهید.

در فرم اصلی یک Panel اضافه کنید تا اون UserControl ها داخل این Panel نمایش داده بشوند و قاطی سایر اجزاء
صفحه نشه. می توانید بجای Panel از GroupBox هم استفاده کنید، عملا فرقی نمی کنه.
وقتی روی یکی از گزینه های منو کلیک کردید اول محتویات Panel را حذف می کنید (اثرات گزارش های قبلی)
و بعد UserControl ای که مربوط به اون گزارش هست رو داخل Panel نمایش می دهید :
کد:
panel1.Controls.Clear();
panel1.Controls.Add(new UserControl1());

رجوع شود به : مشکل با فرم های سی شارپ ؟
 

جدیدترین ارسال ها

بالا