自作ボタンC#版
(new classes of customized buttons in C#)
暫くぶりの更新です。
以前スクロールバーについてもご紹介しましたが、C#では大抵のコントロールは基本のコントロールであるPanelを継承して作れます。
コントロールを自作できるようにしておくと、既存のコントロールの動作に不満足な場合のカスタマイズができて便利です。
今回はボタンを作ってみました。呼び出しプログラム(MyForm.cs)と、ボタン自体のソース(4種類)をご紹介しますので、
VisualStudio で Windows フォームアプリケーションの一つのプロジェクトとしてコンパイルしてみて下さい。
ちなみに、現状、私が使っているのは、Microsoft Visual Studio Community 2019 Version 16.8.5 の環境で .Net Framework 4.8.04161 によります。
実行時の見た目は以下のような感じです。
図: 概観
ボタンの種類ごとの機能は次のようです。
- Button1_Imitated: 本来のButtonにかなり似せて作ったものです。少しだけ違う点として、ボタンの大きさ(高さ)によってフォントのサイズを変えるようにしています。
- Button2_Pusheffective: 本来のButtonと上記項目では、離す時に機能しますが、このボタンは押した時に機能します。
- Button3_Automatic: 押す時に機能すると共に、押し続けると連続して機能します。
- Button4_Direction: "Button3_Automatic" と基本、同じ動作ですが、
Text="W", Text="E", Text="N", Text="S" の限られた場合につき、表示は文字ではなく、それぞれ左、右、上、下 各向きの矢印が表示されます。
【C# ソースコード】
MyForm.cs(ボタンのデモ):
Button1_Imitated.cs(離すときに機能):
Button2_Pusheffective.cs(押すときに機能):
Button3_Automatic.cs(押すときと、押し続けるときに機能):
Button4_Direction.cs(基本が Button3_Automatic.cs と同じで、"W", "E", "N", "S" のみ矢印として表示):