私は現在、最初のユーザー コントロールに取り組んでおり、いくつかの小さな問題が発生しています。
コントロールは、画像をクリアするためPictureBox
のカスタムです。メソッドをButton
オーバーライドしてコントロールを無効にし、マウスの状態に基づいてコントロールに新しい境界線を描画します。OnPaint(PaintEventArgs e)
MouseEnter
MouseLeave
これはすべて正常に機能します。この問題は、(PictureBox に対して) 右上隅にボタンを追加したいときに発生します。
1.
ボタンは、PictureBox に対して正しい位置にありません。0 番目の Y 座標に配置されていますが、X 座標は 100 の位置にあり、160 である必要があります。User Controls Width property
ボタンを配置するときに を使用していますが、default value
代わりに 100 を取得しているようですフォーム上に PictureBox を作成するために割り当てられた 160 のうち。
CustomPictureBox cpic = new CustomPictureBox();
cpic.Location = new Point(20, 20);
cpic.Height = 80;
cpic.Width = 160;
this.Controls.Add(cpic);
ボタンは次のように追加されます。
btnClear = new Button();
btnClear.Width = 20;
btnClear.Height = 20;
btnClear.Location = new Point(this.Width - btnClear.Width, 0);
btnClear.Text = "X";
this.Controls.Add(btnClear);
この DefaultValue はどこから来て、コントロールの新しいインスタンスを初期化するときに指定された幅に従う代わりに、コントロールがそれを使用するのを防ぐにはどうすればよいでしょうか?
2. もう 1 つの問題は、ボタンが機能するためのイベントを取得できないことです。私はたくさんグーグルして、考えられることはすべて試しましたが、イベントはまだ発生していません:(
ボタンの MouseClick、MouseEnter、MouseLeave イベントをユーザー コントロールから直接フックできるようにする必要がありますか?
完全なコードを見たい場合は、ここで見つけることができます: http://pastebin.com/vL14Q5CX
ありがとう!