0
在Windows窗體應用程序中,我創建了一個圖形框或橢圓,我希望這個圖形不會從窗體中移出,當我開始在運行時移動它時,方式我得到這個想法來實現是獲得形式的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
)較大,即使在圖形形式的角落都顯示。
我希望你明白了我的觀點,請建議做些什麼來擺脫這一點。
感謝我過我的條件應答,但格尼爾,我得到它,以及你在說什麼,但實際上問題是formX(表單左邊緣)的值是175,這對我來說是問題,它不應該是零?如果不是y?請讓我知道 – 2013-03-01 10:04:24
從http://msdn.microsoft.com/en-us/library/ms159414.aspx:Form.Location獲取或設置代表屏幕座標*中表單**左上角的Point * *。換句話說,它是左手邊緣與屏幕左手邊緣的距離。 – RoadieRich 2013-03-01 10:10:43
我不知道你使用的圖形庫是什麼,但是你需要弄清楚你正在移動的圖形的x和y是相對於屏幕還是表單 - 如果是後者,那麼你需要將它與'0'和'formWidth'進行比較。 – RoadieRich 2013-03-01 10:13:45