質問

い形の位置を少し上回のタスクバー/システムトレイの右下隅のデスクトップウインドウです。このようなポップアップ通知する通知そのものを感があるボタンでリサイズ、形状、使用してアニメーション化のサイジング単位で5pxを抑えながらの相対位置の右下隅にチェックを入れます。

の問題をこなうやって見させていただくとスムーズです。調整 ました。幅 サイズ左からだを動かすのが残 ました。左 を賠償する一ました。SetBoundsだけるようラッパーのための設定この特性。

ってどうにかなるものなんですい形で円滑に(少なくとも表示されるサイズの変更から外側に向かのものです。

役に立ちましたか?

解決

ETA: でき、実際には、この利用 SetBounds, として SetBounds を委任する SetBoundsCore るのが呼び出すメソッド SetWindowPos.なので SetBounds ま内部でおすすべての境界が一気にウィンドウマネージャは再描画を画面のみ すべての特性の設定を行います。


別のオプションをインポートするには MoveWindow 機能 その代わりにで滑らかなアニメのことで設定でき位置とサイズを同時に せっかくウィンドウマネージャを再描画します。

私の試験コードのように見えるこの換算からはC#によIL VBからの支援もありリフレクタ):

Private button1 As Button
Private components As IContainer = Nothing
Private tm As Timer = New Timer

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
    MyBase.Left = (Screen.PrimaryScreen.WorkingArea.Width - MyBase.Width)
    MyBase.Top = (Screen.PrimaryScreen.WorkingArea.Height - MyBase.Height)
    Me.tm.Enabled = False
    Me.tm.Interval = 20
    AddHandler Me.tm.Tick, Function 
        If (MyBase.Width < 500) Then
            Form1.MoveWindow(MyBase.Handle, (MyBase.Left - 5), (MyBase.Top - 5), (MyBase.Width + 5), (MyBase.Height + 5), True)
        Else
            Me.tm.Enabled = False
        End If
    End Function
End Sub

<DllImport("user32.dll", SetLastError:=True)> _
Friend Shared Function MoveWindow(ByVal hWnd As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal bRepaint As Boolean) As Boolean
End Function

他のヒント

私はこれを試したことがない、しかし、あなたはTrueに、フォームののDoubleBufferプロパティを設定しようとしましたか?これは、図面を滑らかにする必要があります。

あなたはそれが同様に1-2までインクリメントのピクセル手順を減らしてみてください、5pxのサイズを調整することが多いように思える、私はこれが途切れ途切れに表示される可能性がどのように見ることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top