DOBON.NETプログラミング道掲示板

■35116 / 5階層)  フォーム背景のみを半透明にしたい
□投稿者/ 魔界の仮面弁士 大御所(1440回)-(2022/07/27(Wed) 13:50:17)
  • アイコンNo35115に返信(よっし〜さんの記事)
    > Form4.ShowDialog(Me)
    ShowDialog 後の Dispose の呼び出しが漏れているように見えました。
    https://dobon.net/vb/dotnet/form/showform.html

    Show の場合は、フォームが閉じられた時に自動的に Dispose され、メモリ上からアンロードされますが、
    ShowDialog の場合は、使用後に Dispose しないと、閉じられた後もメモリ上に残り続けます。


    それともあえてこの時点では Dispose しないようにしてあるだけで、
    別の場所で Dispose する仕様にしてあるのでしょうか。


    > Dim Pnl As New Panel
    > Pnl.Parent = Me
    > Dim oldBmp = Pnl.BackgroundImage

    これは冗長でしょう。

    新規パネルを、その都度生成するのであれば、
    上記の oldBmp は、常に Nothing ですよね。


    Dim cr = Me.ClientRectangle
    Dim r = Me.RectangleToScreen(cr)
    Using bmp As New Bitmap(cr.Width, cr.Height)
      Using g = Graphics.FromImage(bmp)
        g.CopyFromScreen(r.Location, New Point(0, 0), r.Size)
        Dim alpha As Integer = 255 * 80 \ 100 '不透明度 80%
        Using b As New SolidBrush(Color.FromArgb(alpha, SystemColors.AppWorkspace))
          g.FillRectangle(b, cr)
        End Using
      End Using
      Using pnl As New Panel()
        pnl.Parent = Me
        pnl.BackgroundImage = bmp
        pnl.BringToFront()
        pnl.SetBounds(cr.X, cr.Y, cr.Width, cr.Height)
        pnl.Visible = True

        'Using child As New Form4() With {.StartPosition = FormStartPosition.CenterParent}
        '  child.ShowDialog(Me)
        'End Using
        Form4.ShowDialog(Me)

        Me.Controls.Remove(pnl)
      End Using
    End Using
解決み!
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[4]: フォーム背景のみを半透明にしたい /よっし〜 返信無し
 
上記関連ツリー

Nomalアイコン フォーム背景のみを半透明にしたい / よっし〜 (22/07/26(Tue) 13:31) #35111 1658809874.png/18KB
Nomalアイコン Re[1]: フォーム背景のみを半透明にしたい / 魔界の仮面弁士 (22/07/26(Tue) 14:50) #35112
  └Nomalアイコン Re[2]: フォーム背景のみを半透明にしたい / よっし〜 (22/07/26(Tue) 15:50) #35113 20220726153947-min.png/14KB
    └Nomalアイコン Re[3]: フォーム背景のみを半透明にしたい / 魔界の仮面弁士 (22/07/26(Tue) 16:42) #35114
      └Nomalアイコン Re[4]: フォーム背景のみを半透明にしたい / よっし〜 (22/07/27(Wed) 12:14) #35115 解決み!
        └Nomalアイコン フォーム背景のみを半透明にしたい / 魔界の仮面弁士 (22/07/27(Wed) 13:50) #35116 解決み! ←Now

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -