PDA

View Full Version : غیر فعال شدن ToolTip



mamadgmail
یک شنبه 16 بهمن 1384, 16:26 عصر
سلام
من توی فرمم واسه کلید هام ToolTip گذاشتم تا زمانی که روی کلید کلیک نشده ToolTip اون کلید نشان داده می شه اما بعد از اینکه روی کلید کلیک می شه ToolTip غیر فعال می شه؟؟ چی کار کنم که این اتفاق نیافته و ToolTip همیشه Active باقی بمونه در ضمن من فرم رو با 2005 #C درست کردم
ممنون

SYSMAN
یک شنبه 16 بهمن 1384, 17:08 عصر
اول از همه اینکه دوست عزیز اینجا مربوط به VB .NET هست نه #C
و دوم اینکه من هم امتحان کردم یک همچین مسئله ای هست می شه این کار رو انجام داد:
اگر یک ToolTip و Button رو فرم دارید.


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ToolTip1.SetToolTip(Button1, "Click Me")
End Sub

متد MouseEnter مربوط به Button رو هم به این صورت تنظیم کنید:


Private Sub Button1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseEnter
ToolTip1.Show("Click Me", Me)
End Sub

mamadgmail
یک شنبه 16 بهمن 1384, 17:45 عصر
اول از همه اینکه دوست عزیز اینجا مربوط به VB .NET هست نه #C



ببخشید من اشتباهیی اینجا تایپیک باز کردم من هر 2تا فروم (فرم #C و Vb) رو باز کرده بودم و اشتباهی اینجا نوشتم اما در هر صورت فکر نمی کنم زیاد فرقی بکنه چون این موضوع حتما در VB هم صادقه
راجبه جواب شما هم ممنون اما بینید من منظورم این نبود که بر اساس Event این مشکل رو حل کنید فکر می کردم باید راه حل دیگه ایی باشه چون که شما فکر کنید در یک فرم 10 15 تا کلید دارید باید برای هر کدوم از اینا Event تعریف کنید البته با این روشی که شما گفتید یک کاری می شه کرد اونم اینه که در واقع یک کلاس واسه کلید ها بنویسم و بعد یکی از فیلد هاش در واقع همین ToolTip باشه
در هر صورت از راهنماییتون ممنونم

SYSMAN
یک شنبه 16 بهمن 1384, 18:32 عصر
شاید اساتید دیگه راه حلی داشته باشند. شایدم این هم یک باگ باشه

mamadgmail
یک شنبه 16 بهمن 1384, 23:02 عصر
ومن راه حل شما رو تست کردم اگه اشتباه نکنم Me در VB مانند this در #C و ++ C اگه این طوره کدی که شما دادید برای زمانی که MouseEnter Event اتفاق می یوفته یکمی اشکال دارد به دلیل اینکه در واقع شما هر جای فرم که mouse رو نگه دارید ToolTip نشان داده می شه البته می دونم که این درست نیست و احتمالا این یک BUG هستش اما یک کار دیگه می شه کرد اونم اینه که MouseHover Event
فراخوانی کرد و کد ToolTip.Active=True رو داخلش قرار داد و با رویداد MouseLeve اون رو Hide کرد
البته من واسه این کلید هام یک کلاس نوشتم که این متد ها رو OverRide کردم و مشکلم هم حل شد.ممنون

SYSMAN
دوشنبه 17 بهمن 1384, 02:51 صبح
ومن راه حل شما رو تست کردم اگه اشتباه نکنم Me در VB مانند this در #C و ++ C اگه این طوره کدی که شما دادید برای زمانی که MouseEnter Event اتفاق می یوفته یکمی اشکال دارد به دلیل اینکه در واقع شما هر جای فرم که mouse رو نگه دارید ToolTip نشان داده می شه البته می دونم که این درست نیست و احتمالا این یک BUG هستش اما یک کار دیگه می شه کرد اونم اینه که MouseHover Event
فراخوانی کرد و کد ToolTip.Active=True رو داخلش قرار داد و با رویداد MouseLeve اون رو Hide کرد
البته من واسه این کلید هام یک کلاس نوشتم که این متد ها رو OverRide کردم و مشکلم هم حل شد.ممنون

ME فقط تعیین می کنه که این دکمه مربوط به فرم جاری هستش و ToolTip رو فقط زمانی به نمایش در میاره که اشاره گر موس روی دکمه قرار بگیره (وارد دکمه بشه)، به خاطر همین در هر جای دیگه ToolTip رو نشون نمی ده