PDA

View Full Version : سوال: دابل كليك روي اشياء غير فعال



abdorreza
دوشنبه 24 خرداد 1389, 12:52 عصر
سلام.

وقتي روي يك شي مثلا TextBox كه خاصيت Enabled اونو روي .F. قرار داده ايم دابل كليك ميكنيم برنامه به رويداد دابل كليك هيچ عكس العملي نشان نميدهد. راهي هست كه بشه رويدادي مثل دابل كليك روي اشياء با خاصيت Enabled=.F را تشخيص داد؟

ممنون.

binyaz2003
دوشنبه 24 خرداد 1389, 13:44 عصر
بجاي Enabled ميتونيد از Readonly استفاده کنيد.

abdorreza
سه شنبه 25 خرداد 1389, 11:21 صبح
درست است. ولي چون در جايي از برنامه هست كه من ميخوام كاربر بتونه مثلا TextBox را جابجا كنه ، اگر خاصيت Enabled را برابر .F. قرار ندهم ، كاربر قادر به جابجايي TextBox نيست.

binyaz2003
سه شنبه 25 خرداد 1389, 14:37 عصر
منظورتون از جابجايي چيست؟
اونکه با Drag and Drop قابل انجام و ربطي به اين موضوع ندارد.

mehrpars
سه شنبه 25 خرداد 1389, 16:22 عصر
میتونی از روی موقعیت object تشخیص بدی و اینکارو انجام بدی ،

یه تابع بنویس که اگر ماوس روی محدوده Object.Left تا Object.Left+Objet.Width
و Object.Top تا Object.Top+Object.Height کلیک شد ، اون رویدادو انجام بده

abdorreza
سه شنبه 25 خرداد 1389, 18:22 عصر
منظورتون از جابجايي چيست؟
اونکه با Drag and Drop قابل انجام و ربطي به اين موضوع ندارد.

همون Drag and Drop وقتي خاصيت Enabled در TextBox برابر .F. نباشد عمل نميكند!



میتونی از روی موقعیت object تشخیص بدی و اینکارو انجام بدی ،

یه تابع بنویس که اگر ماوس روی محدوده Object.Left تا Object.Left+Objet.Width
و Object.Top تا Object.Top+Object.Height کلیک شد ، اون رویدادو انجام بده

ميخوام از خود Drag and Drop استفاده كنم. اگر بشه به نظرم دقيقتر ، سريعتر و بهتره!

binyaz2003
چهارشنبه 26 خرداد 1389, 00:18 صبح
شما حتما اشتباه انجام ميدهيد.يک نمونه ساده آپلود کنيد ببينم مشکل چيه ؟
ربطي نداره.

abdorreza
چهارشنبه 26 خرداد 1389, 00:46 صبح
ممنون.

اين هم يك نمونه ي ساده.

Text1 كه ReadOnly هست خيلي سخت جابجا ميشه ولي Text2 كه خاصيت Enabled آن برابر .F. است خيلي راحت جابجا ميشود.

binyaz2003
چهارشنبه 26 خرداد 1389, 01:39 صبح
شما نيازي به کد واقعه MouseMove نداريد ، کافي است که کد واقعه DragDrop را همين :

THIS.Parent.DragDrop(oSource, nXCoord, nYCoord)

قرار دهيد و تنها خاصيت DragMode را برابر Automatic Drag قرار دهيد.

binyaz2003
چهارشنبه 26 خرداد 1389, 01:40 صبح
شما نيازي به کد واقعه MouseMove نداريد ، کافي است که کد واقعه DragDrop را همين :

THIS.Parent.DragDrop(oSource, nXCoord, nYCoord)

قرار دهيد و تنها خاصيت DragMode را برابر Automatic Drag قرار دهيد.