عدم نمایش تب در multipage

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • ms2125

    • 2020/06/24
    • 36

    [حل شده] عدم نمایش تب در multipage

    سلام اساتید محترم من یک فرم ساختم با مولتی پیج داری چند تب هست میخوام اون سربرگ بالای مولتی پج مخفی باشه و فقط با کلید بین تب ها حابجا بشم
    اگه راهی داره لطفا کد vba
    ممنون
  • generalsamad
    مدير تالار توابع

    • 2014/06/22
    • 1496

    #2
    با سلام
    این کد رو امتحان کنید
    کد PHP:
    Private Const GWL_STYLE As Long = -16
    Private Const WS_SYSMENU As Long = &H80000
    #If VBA7 Then
        
    Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As StringByVal lpWindowName As String) As LongPtr
        
    #If Win64 Then
            
    Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongPtrA" (ByVal hWnd As LongPtrByVal nIndex As Long) As LongPtr
            
    Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongPtrA" (ByVal hWnd As LongPtrByVal nIndex As LongByVal dwNewLong As LongPtr) As LongPtr
        
    #Else
            
    Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As LongPtrByVal nIndex As Long) As LongPtr
            
    Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As LongPtrByVal nIndex As LongByVal dwNewLong As LongPtr) As LongPtr
        
    #End If
    #Else
        
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As StringByVal lpWindowName As String) As Long
        
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As LongByVal nIndex As Long) As Long
        
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As LongByVal nIndex As LongByVal dwNewLong As Long) As Long
    #End If
    Public Sub RemoveCloseButton(frm As Object)
        
    #If VBA7 Then
            
    Dim lStyle As LongPtrlFrmHandle As LongPtr
        
    #Else
            
    Dim lStyle As LonglFrmHandle As Long
        
    #End If
        
    lFrmHandle FindWindow("ThunderDFrame"frm.Caption)
        
    lStyle GetWindowLong(lFrmHandleGWL_STYLE)
        
    lStyle lStyle And Not WS_SYSMENU
        SetWindowLong lFrmHandle
    GWL_STYLElStyle
    End Sub 
    سپس در رویداد فرمتون کد را صدا بزنید
    کد PHP:
    Private Sub UserForm_Initialize()
        
    RemoveCloseButton Me
    End Sub 
    Caption یوزرفرم هم میتونید پاک کنید
    [CENTER]
    [SIGPIC][/SIGPIC]
    [/CENTER]

    کامنت

    • ms2125

      • 2020/06/24
      • 36

      #3
      نوشته اصلی توسط generalsamad
      با سلام
      این کد رو امتحان کنید
      کد PHP:
      Private Const GWL_STYLE As Long = -16
      Private Const WS_SYSMENU As Long = &H80000
      #If VBA7 Then
          
      Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As StringByVal lpWindowName As String) As LongPtr
          
      #If Win64 Then
              
      Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongPtrA" (ByVal hWnd As LongPtrByVal nIndex As Long) As LongPtr
              
      Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongPtrA" (ByVal hWnd As LongPtrByVal nIndex As LongByVal dwNewLong As LongPtr) As LongPtr
          
      #Else
              
      Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As LongPtrByVal nIndex As Long) As LongPtr
              
      Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As LongPtrByVal nIndex As LongByVal dwNewLong As LongPtr) As LongPtr
          
      #End If
      #Else
          
      Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As StringByVal lpWindowName As String) As Long
          
      Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As LongByVal nIndex As Long) As Long
          
      Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As LongByVal nIndex As LongByVal dwNewLong As Long) As Long
      #End If
      Public Sub RemoveCloseButton(frm As Object)
          
      #If VBA7 Then
              
      Dim lStyle As LongPtrlFrmHandle As LongPtr
          
      #Else
              
      Dim lStyle As LonglFrmHandle As Long
          
      #End If
          
      lFrmHandle FindWindow("ThunderDFrame"frm.Caption)
          
      lStyle GetWindowLong(lFrmHandleGWL_STYLE)
          
      lStyle lStyle And Not WS_SYSMENU
          SetWindowLong lFrmHandle
      GWL_STYLElStyle
      End Sub 
      سپس در رویداد فرمتون کد را صدا بزنید
      کد PHP:
      Private Sub UserForm_Initialize()
          
      RemoveCloseButton Me
      End Sub 
      Caption یوزرفرم هم میتونید پاک کنید
      ممنون caption پاک کردم خیلی کوچک شد کلا پک نشد
      در ضمن این کدی هم دادین من متوجه نشدم چی هست کجا بزنم

      کامنت

      • generalsamad
        مدير تالار توابع

        • 2014/06/22
        • 1496

        #4
        فایل ضمیمه را مشاهده کنید
        ببینید همین مد نظرتون هست
        فایل ضمیمه گردید
        فایل های پیوست شده
        [CENTER]
        [SIGPIC][/SIGPIC]
        [/CENTER]

        کامنت

        • ms2125

          • 2020/06/24
          • 36

          #5
          این فایل مربوط به پاک کردن دکمه کلوز هست نه مخفی کردن تب multipage درضمن من به دلیلی از اکسل 2007 استفاده میکنم احتمال اینکه ماژول کار نکنه
          Last edited by ms2125; 2021/07/13, 11:36.

          کامنت

          • generalsamad
            مدير تالار توابع

            • 2014/06/22
            • 1496

            #6
            منظورتون از مخفی کردن تب چی هست؟
            تو فایل ضمیمه ای که قرار دادم میتونید توضیح بدید یا فایلی ضمیمه کنید و درخواستتون را توضیح دهید
            [CENTER]
            [SIGPIC][/SIGPIC]
            [/CENTER]

            کامنت

            • ms2125

              • 2020/06/24
              • 36

              #7
              نوشته اصلی توسط generalsamad
              منظورتون از مخفی کردن تب چی هست؟
              تو فایل ضمیمه ای که قرار دادم میتونید توضیح بدید یا فایلی ضمیمه کنید و درخواستتون را توضیح دهید
              بطور مثال نمونه که لطف کردید دوتا تب داره با عنوان main و insert میخوام این دوتا تب مخفی باشن بجاش دوتا دکمه ایجاد کنم بطور مثال بنام main و insert که با دکمه به هر تب خواستم برم
              بطور ساده تر تب وجود داشته باشه ولی اون سربرگ بالا نمایش نده
              Last edited by ms2125; 2021/07/13, 12:41.

              کامنت

              • generalsamad
                مدير تالار توابع

                • 2014/06/22
                • 1496

                #8
                این فایل رو مشاهده کنید ببینید همین مد نظر هست؟
                فایل ضمیمه گردید
                فایل های پیوست شده
                [CENTER]
                [SIGPIC][/SIGPIC]
                [/CENTER]

                کامنت

                • ms2125

                  • 2020/06/24
                  • 36

                  #9
                  نوشته اصلی توسط generalsamad
                  این فایل رو مشاهده کنید ببینید همین مد نظر هست؟
                  فایل ضمیمه گردید
                  ممنون این درسته

                  کامنت

                  چند لحظه..