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

わんくま同盟

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

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


(過去ログ 136 を表示中)
■79933 / )  Re[5]: カラーパレット任意の座標に表示する
□投稿者/ 魔界の仮面弁士 (733回)-(2016/05/30(Mon) 12:51:39)
No79932 (kazu さん) に返信
> 出力にmsg=0x110 (WM_INITDIALOG)のメッセージは存在しました。ただし、PictureBoxをクリックしてカラーパレットの標示ボタンを押すと
> msg=0x110 (WM_INITDIALOG)は取得されない状況です。
> msg=0x110 (WM_INITDIALOG)が取得されるされない条件等はあるのでしょうか?


・PictureBox クリック後に StripColorBtn を押すと固まる、という事なのでしょうか?
 それとも、PictureBox のクリック時にもカラーダイアログ表示のためのコードを書いてあるのでしょうか?

・後者だとした場合、「PictureBox をクリックした場合」にどのようなコードを書いていますか?
 また、PictureBox のどのイベントを利用していますか?

・そもそも カラーパレットの ShowDialog を呼び出すところまで到達していますか?
 WM_INITDIALOG 云々は関係なく、そもそもイベントが呼ばれていなかったという可能性はないでしょうか。

・カラーパレットをデザイン時に用意しておくのではなく、
 カラーパレットをイベント処理時に、毎回 new した場合はどうなりますか?

 using(var dlg = new ColorDialogEx())
 {
   // archPaint の左上隅にダイアログボックスの座標を合わせて表示する
   dlg.Position = this.PointToScreen(new Point(archPaint.Left + 20, archPaint.Top + 30));
   dlg.AllowFullOpen = false;
   if (dlg.ShowDialog() == DialogResult.OK)
   {
     this.StripSelectColorBtn.BackColor = dlg.Color;
     archPaint._selectColor = dlg.Color;
   }
 }
返信 編集キー/


管理者用

- Child Tree -