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

■35114 / 3階層)  フォーム背景のみを半透明にしたい
□投稿者/ 魔界の仮面弁士 大御所(1439回)-(2022/07/26(Tue) 16:42:28)
  • アイコン
    No35113に返信(よっし〜さんの記事)
    > 現在も親の上に半透明シート(?)を表示させ、その上にLabelを配置したフォームを表示させております。
    
    半透明シートを被せて、下の親フォームを操作不能にしたいという意図でしょうか。
    
    であれば、親フォームにフォームサイズの Panel を全体表示しておき、
    その Panel の背景に、親フォームの内容を描画してはどうでしょう。
    
    
    (1) 親フォームに Panel1 を配置。これが半透明モドキになる。
     Panel1 は普段、Visible = False にしておく。
    
    (2) その Panel1 内に、子コントロールとして黄色の Panel2 を置き、
     Panel2 内に Label1 や Button1 を置く。
     Button1_Click のイベントにて「Panel1.Hide()」を記述。
    
    (3) 半透明表示のために、以下を実行。
    
    'Panel1 は Visible = False な状態で開始する事
    Panel1.Visible = False
    
    Dim cr = Me.ClientRectangle
    Dim r = Me.RectangleToScreen(cr)
    Dim bmp As New Bitmap(cr.Width, cr.Height)
    Using g = Graphics.FromImage(bmp)
        '画面キャプチャ
        g.CopyFromScreen(r.Location, New Point(0, 0), r.Size)
        '半透明のスモークをかける
        Using b As New SolidBrush(Color.FromArgb(180, Color.DarkSlateGray))
            g.FillRectangle(b, cr)
        End Using
    End Using
    
    'Panel1を重ねて表示
    Dim oldBmp = Panel1.BackgroundImage
    Panel1.BackgroundImage = bmp
    If oldBmp IsNot Nothing Then
        oldBmp.Dispose()
    End If
    Panel1.BringToFront()
    Panel1.SetBounds(cr.X, cr.Y, cr.Width, cr.Height)
    Panel1.Visible = True

違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[2]: フォーム背景のみを半透明にしたい /よっし〜 20220726153947-min.png/14KB →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アイコン フォーム背景のみを半透明にしたい / 魔界の仮面弁士 (22/07/26(Tue) 16:42) #35114 ←Now
      └Nomalアイコン Re[4]: フォーム背景のみを半透明にしたい / よっし〜 (22/07/27(Wed) 12:14) #35115 解決み!
        └Nomalアイコン Re[5]: フォーム背景のみを半透明にしたい / 魔界の仮面弁士 (22/07/27(Wed) 13:50) #35116 解決み!

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

Mode/  Pass/


- Child Tree -