画像ボックスをボタンとして使用するのに問題があります。昔ながらのウィンドウフォームのボタンコントロールを使用するのではなく、カスタムのボタングラフィックを使用したいのですが。
1つのボタンをすばやく押すとボタンが遅れるように見えることを除けば、かなりうまく機能します。ピクチャーボックスがクリックされるたびにすぐにOnClickメソッドが呼び出されるようにしたいのですが、ダブルクリックイベントを使用していないのに、そのイベントを登録しているようです。
短いバージョンは私がしたいです:
- (理想的)ダブルクリックイベントを無効にします。これは、画像ボックスが交互にクリックされるたびにコントロールが待機しているように見えるため、使用することはありません。または、
- (許容)ボタンとして使用する予定のすべてのピクチャーボックスに使用できる一般的なDoubleClickイベントを記述します。
私は、これが実際に起こっていることであることを示すテストプログラムを作成しました。カウンターを1つ増やすMouseUpイベントを作成し、別のカウンターを1つ増やすOnClickも追加しました。これらのイベントにリンクされているPicture Boxをすばやくクリックすると、MouseUpカウンターはOnClickカウンターの2倍になります。
次に、OnClickイベントを呼び出すDoubleClickイベントを追加しました。これは理想的ではありませんが、問題を完全に解決します。すべてのボタンで使用できる一般的なDoubleClickイベントを作成する方法があれば、これは許容できると思います。
今のところ、私のDoubleClickイベントは
private void pb_DoubleClick(object sender, EventArgs e)
{
pbOK_Click(sender, e); //This needs to be generic
}
少なくともDoubleClickの行を次のようなものに置き換えたい
private void pb_DoubleClick(object sender, EventArgs e)
{
(Sender.ToString)_Click(sender, e); // Doesn't work quite like this.
}
ピクチャーボックスごとに特別なDoubleClickイベントを個別に作成することもできますが、それは理想からはほど遠いものであり、非常に面倒なように思われるため、必要がない場合は作成しないことをお勧めします。
これは私の最初の投稿された質問ですので、これを読むのに時間を割いてくれた人に感謝します。アドバイスをいただければ幸いです。
編集:このプログラムはWindows CE用に開発されているため、オブジェクトのプロパティとイベントオプションはかなり制限されています。私はまだ何かが足りないかもしれませんが、ボタンのプロパティリストがGenerateMemberからLocationに直接移動し、使用可能な画像オプションがないことがわかります。元の投稿にターゲットプラットフォームが記載されていないことをお詫び申し上げます。