C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: フォーム上に角丸のボタンを配置したい


(過去ログ 163 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■94383 / inTopicNo.1)  フォーム上に角丸のボタンを配置したい
  
□投稿者/ IT新人 (1回)-(2020/04/07(Tue) 16:09:20)

分類:[VB.NET/VB2005 以降] 

VB.NET自体初心者で、掲題を検索しているうちにこちらにたどり着きました。
やりたいこととしては、掲題の通りなのですが、どのようにやればいいかが正直分からない状態です。
カスタムコントロールで角丸率を変更できるコントロールを配置又は配置されている通常のボタンを再描画という方法になると思うのですが、
大変お手数なのですが、やり方を教えていただけたらと思います。
引用返信 編集キー/
■94384 / inTopicNo.2)  Re[1]: フォーム上に角丸のボタンを配置したい
□投稿者/ 魔界の仮面弁士 (2671回)-(2020/04/07(Tue) 17:06:19)
No94383 (IT新人 さん) に返信
> VB.NET自体初心者で
VB のバージョンは何ですか?


> カスタムコントロールで角丸率を変更できるコントロールを配置
WPF なら Border.CornerRadius プロパティ、
Web Forms なら CSS の border-radius を使えますが、
今回は恐らく、Windows Forms アプリケーションなのでしょうね。
https://noumenon-th.net/programming/2017/11/19/button/
https://www.sejuku.net/blog/54622



Windows Forms の場合、2 つの方法が思い当たりました。

一つは、Button の Region プロパティに対して、角丸のリージョンを割り当てる方法です。
リージョン生成の手間はありますが、ボタンの形状を変化させるものなので、確実です。
https://www.sourcecodester.com/tutorials/visual-basic-net/13609/how-create-round-button-vbnet.html

ただ、そのままだと枠線部の「影」の表現はできないので、
必要であれば OnPaint をオーバーライドするなどして、自前で描画する必要があります。


もう一つは、Visual Basic PowerPacks の RectangleShape コントロール
(Microsoft.VisualBasic.PowerPacks.RectangleShape)を使う方法です。
http://go.microsoft.com/fwlink/?LinkId=321343

RectangleShape をフォームに貼った場合、既定では長方形が描画されますが、
 ・CornerRadius を 0 よりも大きな数字に変更
 ・FillStyle を Transparent → Solid に変更
 ・FillColor を ControlText → 任意の色に変更
にするだけで、角丸四角形になります。(グラデーションも指定できます)

ただしこちらは文字が表示されないので、そこは Label 等を併用する必要がありますし、
TabStop も存在しないため、キーボード操作との相性は悪いです。
引用返信 編集キー/
■94386 / inTopicNo.3)  Re[2]: フォーム上に角丸のボタンを配置したい
□投稿者/ IT新人 (2回)-(2020/04/07(Tue) 17:41:18)
2020/04/07(Tue) 17:41:43 編集(投稿者)
2020/04/07(Tue) 17:41:38 編集(投稿者)

No94384 (魔界の仮面弁士 さん) に返信
> ■No94383 (IT新人 さん) に返信
>>VB.NET自体初心者で
> VB のバージョンは何ですか?
>
>
>>カスタムコントロールで角丸率を変更できるコントロールを配置
> WPF なら Border.CornerRadius プロパティ、
> Web Forms なら CSS の border-radius を使えますが、
> 今回は恐らく、Windows Forms アプリケーションなのでしょうね。
> https://noumenon-th.net/programming/2017/11/19/button/
> https://www.sejuku.net/blog/54622
>
>
>
> Windows Forms の場合、2 つの方法が思い当たりました。
>
> 一つは、Button の Region プロパティに対して、角丸のリージョンを割り当てる方法です。
> リージョン生成の手間はありますが、ボタンの形状を変化させるものなので、確実です。
> https://www.sourcecodester.com/tutorials/visual-basic-net/13609/how-create-round-button-vbnet.html
>
> ただ、そのままだと枠線部の「影」の表現はできないので、
> 必要であれば OnPaint をオーバーライドするなどして、自前で描画する必要があります。
>
>
> もう一つは、Visual Basic PowerPacks の RectangleShape コントロール
> (Microsoft.VisualBasic.PowerPacks.RectangleShape)を使う方法です。
> http://go.microsoft.com/fwlink/?LinkId=321343
>
> RectangleShape をフォームに貼った場合、既定では長方形が描画されますが、
>  ・CornerRadius を 0 よりも大きな数字に変更
>  ・FillStyle を Transparent → Solid に変更
>  ・FillColor を ControlText → 任意の色に変更
> にするだけで、角丸四角形になります。(グラデーションも指定できます)
>
> ただしこちらは文字が表示されないので、そこは Label 等を併用する必要がありますし、
> TabStop も存在しないため、キーボード操作との相性は悪いです。

> 一つは、Button の Region プロパティに対して、角丸のリージョンを割り当てる方法です。
→この方法でうまくいきました。
 ありがとうございました
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -