Disable کردن Menu item ها
با سلام به دوستان
یه سوال برای من پیش اومده که به نظر راحت می رسه اما واقعا برای من مشکل درست کرده.
من یه برنامه دارم که توی اون یه MenuStrip وجود داره، اون منو خودش چند تا زیر منو(MenuStripToolItem) داره. حالا با استفاده از برنامه نویسی، بر اساس شرایط موجود در برنامه، برخی از اون آیتم ها بایستی disable بشن، برای این کار Enable = False رو می نویسم، در نتیجه موقعی که کاربر بره روی اون آیتم، نمی تونه آیتم های زیرش(DropDownList) رو ببینه، تا اینجا مشکلی نیست، ولی اگه کاربر بره روی یه آیتمی که Enable هست و بعد بره روی آیتم Disable، اون وقت می تونه زیر آیتم های اون آیتم Disable رو هم ببینه، انگار نه انگار که من اون رو Disable کردم.
چه طور می تونم این مشکل رو حل کنم، ممنون.
نقل قول: Disable کردن Menu item ها
من همین الان امتحانش کردم و اگه منظورتون menustript باشه همچین مشکلی پیش نمیاد.
نقل قول: Disable کردن Menu item ها
سلام،
من این رو هم روی 2008 تست کردم و هم روی 2005 در هر دو این مشکل وجود داشت!!!
نقل قول: Disable کردن Menu item ها
میشه یه sample بزارین ببینیم؟
نقل قول: Disable کردن Menu item ها
سلام مجدد،
آقای علی مددی جواب رو بدست آوردم،
2 راه داره:
1_ خودت یک کلاس ToolStripMenuItem بسازی و Event OnPaint کلاست رو Override کنی.
و این کلاس رو با کد وارد برنامت کنی و استفاده کنی.
این یک مثال برای کلاس:
public partial class toolitem : System.Windows.Forms.ToolStripMenuItem
{
protected override void OnPaint(PaintEventArgs e)
{
if(!Enabled)
this.DropDown.Visible = false;
else
this.DropDown.Visible = true;
}
}
2_ یا اینکه مشخصاً این کد رو توی یکی از Event هایPain یا mouse enter یا mouse hover اون ToolStripMenuItem ی که disable شده قرار بده:
( toolStripMenuItem3 اسم اونی هست که disable شده)
if(!Enabled)
toolStripMenuItem3.DropDown.Visible = false;
else
toolStripMenuItem3.DropDown.Visible = true;
اگه از این سوالی داشتید بپرسید!
:لبخندساده:
نقل قول: Disable کردن Menu item ها
:خجالت:خیلی عذر میخوام من منظور شما رو درست متوجه نشده بودم و Dropdown رو امتحان نکرده بودم.شرمنده.
نقل قول: Disable کردن Menu item ها
ممنون از شما، ولی سوال اینجاست که چرا اینجوری هست، مگه به طور منطقی نباید زیر منوها مخفی باشن؟؟!!