۰۸-آبان-۱۳۸۶, ۰۰:۲۴:۳۶
۰۹-آبان-۱۳۸۶, ۱۹:۳۹:۱۸
سلام
یه راه ساده اینه که یه تایمر بزاری و اینترول رو 1 بدی بعد هم کد زیر
یه متغییر عمومی هم تعریف می کنی
کد زیر رو هم در MouseDown تکست باکس مورد نظر می نویسی
موفق باشی
یه راه ساده اینه که یه تایمر بزاری و اینترول رو 1 بدی بعد هم کد زیر
کد:
If bRCRJ = True Then
Text1.Enabled = False
Text1.Enabled = True
End If
یه متغییر عمومی هم تعریف می کنی
کد:
Dim bRCRJ As Boolean
کد:
If Button = 2 Then
bRCRJ = True
Else
bRCRJ = False
End If
۰۹-آبان-۱۳۸۶, ۲۰:۵۸:۴۶
ممنون دوست عزیز
اما استفاده از یه تایمر با Interval = 1 یه خورده ناجوره و کار مورد نظر ما رو هم انجام نمیده!!!
من با استفاده از Hook اون گزینه ها رو غیر فعال کردم یعنی پیغام فرستاده شده رو به Null تنظیم میکنم و Cut , Copy , Past و حتی کلیک راست رو هم غیر فعال کردم اما وقتی روی تکست باکس راست کلیک میشه گزینه Cut , Copy روشن هستند هر چند عملا کاری انجام نمیدن
حالا من میخوام این دو تا رو از منوی راست کلیک تکست باکس به حالت DISABLED & GRAYED در بیارم!؟ درست مثل منوی راست کلیک برای تکست باکس یاهو مسنجر!
اما استفاده از یه تایمر با Interval = 1 یه خورده ناجوره و کار مورد نظر ما رو هم انجام نمیده!!!
من با استفاده از Hook اون گزینه ها رو غیر فعال کردم یعنی پیغام فرستاده شده رو به Null تنظیم میکنم و Cut , Copy , Past و حتی کلیک راست رو هم غیر فعال کردم اما وقتی روی تکست باکس راست کلیک میشه گزینه Cut , Copy روشن هستند هر چند عملا کاری انجام نمیدن
حالا من میخوام این دو تا رو از منوی راست کلیک تکست باکس به حالت DISABLED & GRAYED در بیارم!؟ درست مثل منوی راست کلیک برای تکست باکس یاهو مسنجر!
۰۹-آبان-۱۳۸۶, ۲۳:۰۷:۵۱
سلام
خوب من که گفتم این یه راه هست. و باز راه های بهتری هم وجود داره
اما تا جایی که من دیدم وقتی passwordChar رو * بزاری دقیقا مثل یاهو میشه !
البته شاید منظورتون این بود که تکست معمولی هم مثل پسورد باشه .
منظورتون این بود ؟
موفق باشی
خوب من که گفتم این یه راه هست. و باز راه های بهتری هم وجود داره
اما تا جایی که من دیدم وقتی passwordChar رو * بزاری دقیقا مثل یاهو میشه !
البته شاید منظورتون این بود که تکست معمولی هم مثل پسورد باشه .
منظورتون این بود ؟
موفق باشی
۰۹-آبان-۱۳۸۶, ۲۳:۱۸:۲۳
خوب این کد رو هم ببین
این روش دومه
البته این کلا راست کلیک رو از تکست بر می داره! ارزش دیدن رو داره
البته دارم روی غیر فعال کردن یک گزینه خاص هم کار می کنم . اگه به نتیجه رسید خبرت می کنم .
این کد رو توی یه Modules می نویسی
و این کد رو هم توی فرم
این روش دومه
البته این کلا راست کلیک رو از تکست بر می داره! ارزش دیدن رو داره
البته دارم روی غیر فعال کردن یک گزینه خاص هم کار می کنم . اگه به نتیجه رسید خبرت می کنم .
این کد رو توی یه Modules می نویسی
کد:
Public OldWindowProc As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Const GWL_WNDPROC = (-4)
Public Const WM_USER = &H400
Public Function NoPopupWindowProc(ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Const WM_CONTEXTMENU = &H7B
If msg <> WM_CONTEXTMENU Then
NoPopupWindowProc = CallWindowProc(OldWindowProc, hWnd, msg, wParam, lParam)
End If
End Function
و این کد رو هم توی فرم
کد:
Private Sub Form_Load()
OldWindowProc = SetWindowLong(Text1.hWnd, GWL_WNDPROC, AddressOf NoPopupWindowProc)
End Sub
Private Sub Form_Unload(Cancel As Integer)
SetWindowLong Text1.hWnd, GWL_WNDPROC, OldWindowProc
End Sub
۰۹-آبان-۱۳۸۶, ۲۳:۳۱:۰۹
این هم یه راه دیگه
ببین این همونیه که می خواستی ؟ یا نه ؟!
تو این روش copy , cut حذف شده دقیقا مثل تکست پسورد یاهو !
اگه همونی نیست که می خواستی بگو تا بیشتر روش کار کنم
موفق باشی
ببین این همونیه که می خواستی ؟ یا نه ؟!
کد:
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = vbCtrlMask And (Chr(KeyCode) = "v" Or Chr(KeyCode) = "V") Then
Text1.Locked = True
Else
Text1.Locked = False
End If
End Sub
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
Text1.Locked = True
Else
Text1.Locked = False
End If
End Sub
Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Text1.SelLength > 0 Then Text1.SelStart = Text1.SelStart
End Sub
تو این روش copy , cut حذف شده دقیقا مثل تکست پسورد یاهو !
اگه همونی نیست که می خواستی بگو تا بیشتر روش کار کنم
موفق باشی
۰۹-آبان-۱۳۸۶, ۲۳:۵۳:۰۹
ممنون
آره منظورم همين بود براي تکست باکس معمولي ميخوام اين کارو بکنم
در واقع يه تکست باکس عددي داشتم که فقط عدد توش تايپ ميشه اما خوب اگه کاربر يه متن رو توش Past ميکرد که نميشد بعد اومدم Past رو به همين روش غير فعال کردم اما ميخوام از توي راست کليک هم غير فعال بشه ( DISABLED & GRAYED ) بشه!؟
و به طور کلي ميخواستم ببينم اين گزينه ها رو چه جوري ميتونم فعال و غير فعال کنم که تو مورد هاي ديگه هم ازشون استفاده کنم!!!
این کد دوم هم تو بعضی از حالت های خاص جواب میده اما حتما روش مناسب تری داره !!
البته کد دوم رو هنوز دقیق نگاه نکردم, نگاه میکنم خبرشو میدم!
بازم ممنون بابت زحماتت
آره منظورم همين بود براي تکست باکس معمولي ميخوام اين کارو بکنم
در واقع يه تکست باکس عددي داشتم که فقط عدد توش تايپ ميشه اما خوب اگه کاربر يه متن رو توش Past ميکرد که نميشد بعد اومدم Past رو به همين روش غير فعال کردم اما ميخوام از توي راست کليک هم غير فعال بشه ( DISABLED & GRAYED ) بشه!؟
و به طور کلي ميخواستم ببينم اين گزينه ها رو چه جوري ميتونم فعال و غير فعال کنم که تو مورد هاي ديگه هم ازشون استفاده کنم!!!
این کد دوم هم تو بعضی از حالت های خاص جواب میده اما حتما روش مناسب تری داره !!
البته کد دوم رو هنوز دقیق نگاه نکردم, نگاه میکنم خبرشو میدم!
بازم ممنون بابت زحماتت
۱۱-آبان-۱۳۸۶, ۲۰:۲۹:۱۵
اومدم بگم کد دوم هم مناسب نیست چون مثلا من میخوام فقط گزینه Past رو غیر فعال کنم و مثلا امکان کپی رو بدم به تکست باکس مثل همون Numeric TextBox که گفتم !!!