PDA

View Full Version : سوال: تغییر شکل Mouse هنگام قرار گرفتن روی آیتمهای ListBox



shytonak
یک شنبه 05 دی 1389, 12:36 عصر
دوستان چطور میشه وقتی که موس روی یکی از آیتم های لیست باکس میره موس به صورت دست بشه.کد تبدیل شکل موس رو بلدم ولی این که این موس رو توی کدام خاصیت لیست باکس قرار بدم نمی دونم.

tooraj_azizi_1035
یک شنبه 05 دی 1389, 12:40 عصر
سلام،
بخشید با VB.NET جواب می دم خودتون به #C تغییر بدید:

این کد هنگام حرکت ماوس روی یک Item اون رو بر می گردونه:

Private Sub ListBox1_MouseHover(ByVal sender As Object, ByVal e As
System.EventArgs) Handles ListBox1.MouseHover

Dim cc, sc As Point
cc = New Point
sc = New Point


sc = ListBox1.MousePosition()
cc = ListBox1.PointToClient(sc)

Debug.WriteLine(ListBox1.IndexFromPoint(cc))

End Sub

shytonak
یک شنبه 05 دی 1389, 14:03 عصر
دوست من اگه ممکنه به سی شارپ بذارید

tooraj_azizi_1035
یک شنبه 05 دی 1389, 14:07 عصر
سلام،
کاری نداره. لیست باکس رو انتخاب کن در قسمت Event ها MouseHover رو انتخاب کن. متد ها عیناً در #C قابل استفاده است.

shytonak
یک شنبه 05 دی 1389, 14:14 عصر
دوست من قسمت ListBox1.MousePosition() مشکل داره.

tooraj_azizi_1035
یک شنبه 05 دی 1389, 14:19 عصر
اینو تست کن ببین اندیس رو بر می گردونه:

listBox1.IndexFromPoint(this.PointToClient(MousePo sition)));

shytonak
یک شنبه 05 دی 1389, 14:40 عصر
نه متاسفانه.نشد

tooraj_azizi_1035
یک شنبه 05 دی 1389, 14:50 عصر
ببین برای گرفتن موقعیت موس می تونی از شیء Cursor استفاده کنی. Cursor.X و Cursor.Y و با این دو یک شیء Point بسازی و تو متد IndexFromPoint استفاده کنی.

Point p=new Point(this.Cursor.X,this.Cursor.Y);
listBox1.IndexFromPoint(p)

tooraj_azizi_1035
یک شنبه 05 دی 1389, 14:51 عصر
ببخشید که اینطوری جواب میدم. چون #C فعلاً دم دستم نیست.