Private Sub Form_Load()
Dim Txt As TextBox
Set Txt = Controls.Add("VB.TextBox", "AddTextBox")
Txt.Visible = True
End Sub
请问各位有办法去掉默认菜单!!

解决方案 »

  1.   

    Private Const GWL_WNDPROC = (-4)
    Private Const WM_RBUTTONDOWN = &H204Private 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
    Private Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate prevWndProc As LongPrivate Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        If Msg = WM_RBUTTONDOWN Then
        Else
            WndProc = CallWindowProc(prevWndProc, hWnd, Msg, wParam, lParam)
        End If
    End Function'禁止TextBox的系统右键菜单
    Sub DisableRightClick(txtTarget As TextBox)
        
        prevWndProc = GetWindowLong(txtTarget.hWnd, GWL_WNDPROC)
        SetWindowLong txtTarget.hWnd, GWL_WNDPROC, AddressOf WndProc
    End Sub=====
    此段代码放到模块中,在Form中调用此Sub
      

  2.   

    Private Sub Form_Load()
    Dim Txt As TextBox
    Set Txt = Controls.Add("VB.TextBox", "AddTextBox")
    txt.text=""
    Txt.Visible = True
    End Sub
      

  3.   

    还有,因为产生的文本框是数组控件,所以不能定义带事件的控件!!!
    Private Sub Form_Load()
    Dim Txt(1) As TextBox
    Set Txt(0) = Controls.Add("VB.TextBox", "AddTextBox")
    Txt(0).Visible = True
    End Sub
      

  4.   

    不是用事件的啊...Private Sub Command1_Click()
        Dim txt As Control
        
        Set txt = Controls.Add("VB.TextBox", "Test")
        
        txt.Top = 10
        txt.Left = 10
        txt.Height = 300
        txt.Width = 1000
        txt.Visible = True
        DisableRightClick txt
    End Sub
      

  5.   

    谢谢gump2000(阿甘) 
    再问你一个问题:
    如果我想产生的text文本框都可以调用一个菜单,而且可能是未知的菜单,有什么好办法吗??
      

  6.   

    http://www.sijiqing.com/vbgood/article/001311702.html
      

  7.   

    在Mouse_Down()中加下述代码
       txt.enabled =false
       txt.enabled =true
    这样就可以屏蔽默认菜单
      

  8.   

    调用自编的和通用的一样,用popupmenu
      

  9.   

    对不起,我没讲清楚
    dragon525()提供的方法对我不实用,我已定义数组变量产生了不带事件文本框,用户要求在产生的文本框中也产生右键菜单
    请问高招用自定义菜单代替默认菜单吗?
    Public txt() As Control
    Private Sub Form_Load()
    reDim Txt(1)
      Set Txt(1)= Me.Controls.Add("VB.TextBox", "txt1" ,me)
      Txt(1).Caption = Adodc1.Recordset("controlsdes")
      Txt(1).txt.Top = 10
      Txt(1).Left = 10
      Txt(1).Height = 300
      Txt(1).Width = 1000
      Txt(1).Visible = True
    End Sub