نمایش تول تیپ برای کنترل غیرفعال شده
سلام دوستان وقت به خیر .
ببخشید من یه دکمه 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 باشه کار می کنه ؟