Windowsフォームアプリケーションで、グラフィックボックスまたは楕円を作成します。実行時に移動を開始したときに、このグラフィックがフォームから出ないようにしたいのですが、このアイデアを実装する方法の1つは、フォームのX座標とY座標を取得することです。グラフィック オブジェクトの x 座標と y 座標から一致させますが、正しく機能していません。フォームの x 座標と y 座標が正しくないと思います。
以下は、グラフィックがフォームの内側または外側にあることを検出するために使用するコードです。
float formX = this.Location.X;
float formY = this.Location.Y;
float formWidth = this.Width;
float formHeight = this.Height;
// x = my graphic x's coordinates
// y = my graphic y's coordinates
// width = the width of my graphic or the x2 values of my graphic
if ((x > (formX + formWidth) || ((x + width) > (formX + formWidth))
return true;
else
return false;
ここで単純なコードについて言及しましたが、x 軸のみでは適切に機能しません。フォームの隅にグラフィックが表示されている場合でも、( formX
+ ) の方が大きくなります。width
これから抜け出すために何をすべきかを提案してください。