نمایش تول تیپ برای کنترل غیرفعال شده
سلام دوستان وقت به خیر .
ببخشید من یه دکمه disabled شده دارم . میخام روش تول تیپ بندازم . توی ویندوز فرم .
کدهای مربوط به ایونت Mouse_Move توی مایکروسافت و استک اورفلو رو تست کردم ولی هیچ کدومش نشد . همش برای حالت فعال هست .
ممنون میشم کمکم کنید .
8 پاسخ
این کد stackoverflow کاملا کار میکنه ، فقط دقت کنید تابع MouseMove رو باید از پنجره properties به فرم اضافه کنید نه اینکه صرفا paste بشه.
private ToolTip _toolTip = new ToolTip(); private Control _currentToolTipControl = null; public Form1() { InitializeComponent(); _toolTip.SetToolTip(this.button1, "My button1"); _toolTip.SetToolTip(this.button2, "My button2"); _toolTip.SetToolTip(this.textBox1, "My text box"); } private void Form1_MouseMove(object sender, MouseEventArgs e) { Control control = GetChildAtPoint(e.Location); if (control != null) { if (!control.Enabled && _currentToolTipControl == null) { string toolTipString = _toolTip.GetToolTip(control); // trigger the tooltip with no delay and some basic positioning just to give you an idea _toolTip.Show(toolTipString, control, control.Width/2, control.Height/2); _currentToolTipControl = control; } } else { if (_currentToolTipControl != null) _toolTip.Hide(_currentToolTipControl); _currentToolTipControl = null; } }
group box رو enable کنید ، button رو disbale احتمالا جواب میده
همینطوری هست اصلا .
یه کدی توی این صفحه گفته برای گروپ باکس . من اینو توی قسمت زیر که گفته قرار میدم ولی کار نمیکنه : گفته توی دیزاینر فرم مربوطه قرارش بدید
https://stackoverflow.comquestions19248573/show-tooltip-of-a-disabled-button-which-is-inside-a-group-box-in-windows-form
بله . بیرونش کار میکنه . ولی اینجوری که دکمه رو بزارم بیرون اصلا فرمم میریزه بهم . نمیشه کاری کرد داخلش هم کار کنه ؟
این کدی که داخل پیج بالا توی استک اور فلو گذاشتند کار کرد .
خیلی خیلی ممنونم از شما که وقت گذاشتید جناب آقای آقامیری. ممنونم
ربطی به enable و disable بودن نداره.
شما باید اول یک ToolTip control رو از toolbox به فرم اضافه کنید ، بعد با کدی مثل زیر متن Tool Tip و مشخص کنید.
this.toolTip1.SetToolTip(button1, "My Tool Tip");
سلام . من همین کد رو دقیقا توی ایونت Mouse_Move فرم اصلیم(فرمی که این دکمه توش هست) گذاشتم و بخش کانستراکتور هاش هم گذاشتم . ولی هیچ کاری نمیکنه . اینم بگم که دکمه من در یک گروپ باکس هست . که گروپ باکس این ایونت رو نداره .
از داخل پروپرتیز هم کد رو بهش اضافه کردم .
حتی توی فرم لود هم ShowAlways رو هم ترو کردم بازم نشد .
ببینید ، اگه بیرون Group Box باشه کار می کنه ؟