对于一个控件.我不想让键盘写入任何东西或者删除它原有的东西,understand???

解决方案 »

  1.   

    你用的是什么控件??
    如果是Text,只要指定属性Text1.Locked = True就行了
    至于别的要在KeyDown、KeyPress中加入下面的事件,以Text为例
    Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    KeyCode = 0
    End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)
    KeyAscii = 0
    End Sub
      

  2.   

    to joinkey(一切):我用的是datagrid控件.没有locked属性.
    to dbcontrols(泰山):你绝对是高手!!!
      

  3.   

    你查一下msdn上面有一个api函数可以实现你要求的功能,我用过,但现在想不起是那个了
      

  4.   

    你做一个VXD,在VXD加载的时候调用VKD_Disable_Keyboard.
    如下:
    BOOL OnDeviceInit(VMHANDLE hVM, PCHAR CommandTail)
    {
     VKD_Disable_Keyboard(Get_Sys_VM_Handle());
     return TRUE;
    }
    BOOL OnSysDynamicDeviceInit()
    {
     VKD_Disable_Keyboard(Get_Sys_VM_Handle());
     return TRUE;
    }
    这时用户的按键都被屏蔽了。
    当你们的程序启动后用DeviceIoControl给vxd发个命令,
    让vxd调用VKD_Enable_Keyboard();即可。
      

  5.   

    以下的可以用吗:如何过滤键盘录入   
           
    在 VB 的应用得到以前就处理键盘动作,实现对键盘的全面控制, 可过滤任意的键。下面的例子过滤了 CTRL+C 键, 并把该键模拟为在 Command1 上单击。Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPublic Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As LongPublic Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As LongPublic Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPublic Const WH_KEYBOARD = 2
    Public Const KBH_MASK = &H20000000
    Public Const WM_LBUTTONDOWN = &H201
    Public Const WM_LBUTTONUP = &H202Global hHook As Long'KeyboardProc 在 VB 应用动作前发生
    Public Function KeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    If nCode >= 0 Then
    '处理你希望过滤的键
    If wParam = Asc("C") And (lParam And KBH_MASK) <> 0 Then
    If (lParam And &HC0000000) = 0 Then
    '模拟在Command1 中单击
    Form1.Command1.SetFocus
    Call PostMessage(Form1.Command1.hwnd, WM_LBUTTONDOWN, 0, &H20002)
    Call PostMessage(Form1.Command1.hwnd, WM_LBUTTONUP, 0, &H20002)
    KeyboardProc = 1
    Exit Function
    End If
    End If
    End If
    KeyboardProc = CallNextHookEx(hHook, nCode, wParam, lParam)
    End FunctionPrivate Sub Form_Load()
    '将 KeyboardProc 连接到中断上
    hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, 0&, App.ThreadID)
    End SubPrivate Sub Form_Unload(Cancel As Integer)
    Call UnhookWindowsHookEx(hHook)
    End Sub
      

  6.   

    呵呵~~  看看~  dbgrid1.enter=false  也可以的