相当于ReisizeEnd事件用户控件

时间:2018-01-08 17:04:00

标签: vb.net winforms user-controls

我使用用户控件制作了自定义任务窗格 每次调整大小时,我都会引发一个名为SuspendDrawing的方法,因为我这样做的原因是因为我自定义任务窗格上的按钮在调整大小时会闪烁,因此我需要暂停它。我使用设计师

添加这些按钮

这就像一个款待,但是当用户停止调整大小时我需要调用一个名为ResumeDrawing的方法但是我不知道我应该用什么事件来调用ResumeDrawing方法,因为它有用户控件没有ResizeEnd事件。

任何建议都会受到赞赏,因为我没有想法。

我的代码如下

Public Property Resizing As Boolean

<DllImport("user32.dll", EntryPoint:="SendMessageA", ExactSpelling:=True, CharSet:=CharSet.Ansi, SetLastError:=True)>

Private Shared Function SendMessage(ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
End Function

Public Shared Sub SuspendDrawing(ByVal target As Control)
    SendMessage(target.Handle, WM_SETREDRAW, 0, 0)
End Sub

Public Shared Sub ResumeDrawing(ByVal target As Control)
    ResumeDrawing(target, True)
End Sub

Public Shared Sub ResumeDrawing(ByVal target As Control, ByVal redraw As Boolean)
    SendMessage(target.Handle, WM_SETREDRAW, 1, 0)
    If redraw Then
        target.Refresh()
    End If
End Sub

Private Sub SideBarPowerPoint_Resize(sender As Object, e As EventArgs) Handles MyBase.Resize
     SuspendDrawing(Me)
End Sub

我的自定义任务窗格

    Dim taskPaneView = New PowerPointCommon.SideBarPowerPoint
    sideBarTaskPane = Globals.ThisAddIn.CustomTaskPanes.Add(taskPaneView, " ")
    If sideBarTaskPane.Visible = True Then
        sideBarTaskPane.Visible = False

    End If
    sideBarTaskPane.Visible = True
    sideBarTaskPane.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionRight

    sideBarTaskPane.Width = 100

0 个答案:

没有答案
相关问题