WindowsFormsアプリで、自作コントロールを作って学習
目指すもの
ゲーム盤があって駒があるタイプのなにがしかのボードゲーム
名詞抽出法
名詞、名詞句
ゲーム盤、盤のイメージ、駒、駒のイメージ
動詞、動詞句
駒は、画像イメージを持っている
駒は、画像イメージを表示できる
構成のイメージ
ゲーム盤が複数の駒を持っている
駒は、画像を持っている
駒は、ビジュアルを表示することができる(ピクチャボックスを持っている)
画像のソース
WindowsFormsのライブラリを使って作成するケース
System.Windows.Forms名前空間のUserControlクラス
UserControlクラスとは
フォームデザイナで他のコントロールを作成するために使用することができる空のコントロールを表します。 フォームを拡張することで、UserControl はユーザーコントロールに必要な標準の位置決めおよびニーモニック処理コードをすべて継承します。
UserControlクラスから継承するメリット
Windowsホームアプリでユーザーコントロールクラスを継承すると、アプリケーションで複数回使用されるカスタムUIコンポーネントを簡単に作成できます。このアプローチにはいくつかの利点があります。
まず、ユーザーコントロールを使用することで、同じUIコンポーネントをアプリ内の複数の場所で使用できます。これにより、UIの一貫性を維持し、開発時間を節約できます。
また、ユーザーコントロールを継承すると、親クラスから多くの機能を継承できます。たとえば、親クラスには、ウィンドウの作成や再描画、イベント処理などの機能が含まれています。これらの機能を使用することで、カスタムUIコンポーネントを作成するのに必要なコードの量が減り、開発時間が短縮されます。
さらに、ユーザーコントロールを使用することで、再利用可能なコードを作成できます。このアプローチにより、複数のアプリケーションで同じUIコンポーネントを使用でき、開発の効率性が向上します。
総合的に、ユーザーコントロールクラスを継承することで、カスタムUIコンポーネントを作成するのに必要なコードの量を減らし、開発時間を短縮できます。また、同じUIコンポーネントをアプリ内の複数の場所で使用できるため、一貫性を維持し、再利用可能なコードを作成できます。
自作コントロールのデザイン設計
まず、プロジェクトにユーザーコントロールを継承したクラスを作成します
プロジェクトを右クリックした時の追加メニューでできます
駒(Piece)クラスに属性として画像と画像を表示する機能を持たせたいのでPictureBoxをドラッグ&ドロップします
ソリューションエクスプローラ
ライブラリを活用して開発を進めることを目標にします
UserControlクラスを継承して自作のクラスを作ります
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ClassSample
{
public partial class Piece : UserControl
{
public Image Image
{
get => pictureBox1.Image;
set
{
pictureBox1.Image = value;
}
}
public Piece()
{
InitializeComponent();
}
}
}
このコードは、Windowsフォームアプリケーションを開発する際に使用される、ユーザー定義コントロールである「Piece」を定義しています。
まず、必要な名前空間をusingで読み込みます。System.Drawing名前空間はグラフィックス関連の機能を提供し、System.Windows.Forms名前空間はWindowsフォームアプリケーションの機能を提供します。
次に、PieceクラスがUserControlクラスを継承していることが示されています。これは、Pieceがユーザー定義コントロールであることを示しています。
Pieceクラスには、InitializeComponent()というメソッドがあります。これは、Visual Studioのデザイナーで自動的に生成されるメソッドであり、コントロールの初期化に必要なコードが含まれています。
また、Pieceクラスには、Imageというプロパティがあります。このプロパティは、PictureBoxコントロールのImageプロパティにアクセスし、取得または設定します。PieceクラスはPictureBoxをコントロールとして含んでいるため、PictureBoxのImageプロパティにアクセスすることができます。
以上のように、このコードは、Pieceクラスを定義し、そのプロパティにアクセスするための手段を提供しています。このコントロールを使用すると、画像を表示するための簡単な方法を提供することができます。
フォームに配置
Form1.cs
コードは、.NET系になっていますが、.NetFrameWorkの場合、リソースは、Properties.Resources.になります
namespace ClassSample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
piece1.Image = Resource1.プログラミング;
}
}
}
上記サンプルでは、ファイル名が「プログラミング」でしたのでそのようになっていますが、次のように右クリックして、名前の変更で適切な英単語にすることをお勧めします
ディスカッション
コメント一覧
まだ、コメントがありません