Visual basic でのオセロ作成(デザイン)

■白黒の石に画像ファイルを使う。
前回まででロジックは組めたので、デザイン面をいじった。
最終的には下のような感じ。白としてユーザが置いた後、メッセージボックスを表示して一時停止、OKを押すと自動的にランダムな位置に黒が置かれ、再度白のターン。


白、黒はラベルに画像ファイルを張っているだけ。Visual basicの中で画像参照させるときに、プロジェクトの中で相対パスとして指定する方法を探していたら、埋め込みリソースとして行うやり方があった。プロジェクト名を右クリックで出てくる「追加」-「既存の項目」から、指定したい画像ファイルを追加する。対象ファイルのプロパティからビルドアクションで「埋め込みリソース」とする(下の図)。


画像を取得するには、GetExecutingAssembly(), GetManifestResourceStream で対象となる画像ファイルを指定して取得し、Streamから画像オブジェクトを生成。


これで、表示部分に画像を使用できる。

あと、ユーザからの入力を受け付ける際に、TableLayoutPanel へのクリックとしているけど、画像ファイルを使うために Label 部分を大きくしたところ、TableLayoutPanel でなく Label 部分へのクリックと判断されてしまった。これを回避するために、Label 部分でのイベント起動から TableLayoutPanel のイベント起動とかできないか見てみたけど、最終的に Label のプロパティの Enabled (コントロールが有効化どうか) を false 指定することで解決した。

ただ、これを指定すると Label のコントロールが無効化されるとともに色が変わる。画像ファイルに対してもグレー味がかった感じになり見映えが悪い。Label をカスタム化する方法とかあるみたいだけど、そこまでやる気もないので、画像ファイルの色を調整して終わりにした。

これで Visual basic でのオセロ作成は一端完了。