開発環境:
Windows10 Pro
Visual Studio Community 2019
開発言語:
html css
ミーはこのところおとなしくしています。
夕食前後に2~3度外出しますが、お風呂までには、帰ってきます。
夜は2時頃に一度起きてうろついていますが、餌があるときは、起こしません。
4時過ぎには妻を起こして、朝ごはんです。
Formの角は四角い物だと思っていましたが、
変形したり、透過したりは可能なので、
とりあえず、角丸の透過にしてみました。
下のようなFormを用意します。
下の様にコーディングします。
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.FormBorderStyle = FormBorderStyle = Windows.Forms.FormBorderStyle.None Me.BackColor = Color.Black Me.Opacity = 0.6 With TextBox1 .BackColor = Color.Black .BorderStyle = BorderStyle.None .ForeColor = Color.White .Text = "aiueo" .Font = New Font("MSゴシック", 18) .ReadOnly = True .TabStop = False End With With Button1 .TabStop = True .Text = "キャンセル" End With Dim radius = 5 Dim diameter = radius * 2 Dim gp As New System.Drawing.Drawing2D.GraphicsPath() ''左上 gp.AddPie(0, 0, diameter, diameter, 180, 90) ''右上 gp.AddPie(Me.Width - diameter, 0, diameter, diameter, 270, 90) ''左下 gp.AddPie(0, Me.Height - diameter, diameter, diameter, 90, 90) ''右下 gp.AddPie(Me.Width - diameter, Me.Height - diameter, diameter, diameter, 0, 90) ''中央 gp.AddRectangle(New Rectangle(radius, 0, Me.Width - diameter, Me.Height)) ''左 gp.AddRectangle(New Rectangle(0, radius, radius, Me.Height - diameter)) ''右 gp.AddRectangle(New Rectangle(Me.Width - radius, radius, radius, Me.Height - diameter)) Me.Region = New Region(gp) End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Me.Dispose() End Sub Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown Me.Top = (System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height / 2) - (Me.Height / 2) Me.Left = (System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width / 2) - (Me.Width / 2) End Sub End Class
こんな感じになります。
角R 5px、不透明度 60%です。
わかりにくいのは、四隅の角度の指定部分です。
gp.AddPie(位置指定 横, 位置指定 縦, 楕円の横サイズ, 楕円の縦サイス, 描画開始角度, 描画する角度)です。
何に使おうか考えていますが、メッセージボックスとかの用途しか思い浮かびません。
現状、Formのタイトルバーを表示しないようにしていますので、マウスでつかんで移動させることができません。
そこは、今後の課題です。