Re: [問題] mouseclick問題

看板C_Sharp (C#)作者 (吼~)時間16年前 (2010/04/21 16:54), 編輯推噓4(406)
留言10則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《dreamday1023 (也許我就是我,好好愛自己)》之銘言: : private int []x; : private int []y; : private void Form1_mouseclick(object sender,mouseeventarge e) : { : m++; : x=new int[m]; : y=new int[m]; : for(int i=0;i<m;i++) : { : x[i]=e.X; : y[i]=e.Y; : } : label1.text=Convert.ToString(x[0]); : } 看了一下你的程式,我先假設以下兩點 1. m 是全域變數 2. 在 Form 上點一下滑鼠就記錄該點座標 每次點一下滑鼠就由x、y陣列的第0個元素開始全改成目前的座標,這是很詭異的事 從這裡我沒辦法反推需求,所以.......再假設你是要將每個點都存起來.... 那上面那段程式裡的迴圈就不需要了,直接改x、y陣列裡的第m元素為你當前滑鼠點的 座標就對了。 private void Form1_mouseclick(object sender,mouseeventarge e) { m++; x=new int[m]; y=new int[m]; x[m]=e.X; y[m]=e.Y; label1.text=Convert.ToString(x[0]); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.177.139

04/21 17:36, , 1F
用陣列存這種東西,爆掉是遲早的事,我比較建議用LIST
04/21 17:36, 1F

04/21 18:10, , 2F
List 並不會比較省記憶體吧??
04/21 18:10, 2F

04/21 18:23, , 3F
x=new int[m];y=new int[m]; 這兩行就錯了
04/21 18:23, 3F

04/21 18:37, , 4F
是是是!我錯了!
04/21 18:37, 4F

04/21 18:39, , 5F
安全問題,再要不然,記得檢查m,不要讓他超過陣列索引
04/21 18:39, 5F

04/22 02:16, , 6F
直接存 是不是不會陣列方式不對阿
04/22 02:16, 6F

04/22 02:18, , 7F
因為當m=1時 x,y應該都是m維的陣列 那x[m=1]這樣應
04/22 02:18, 7F

04/22 02:18, , 8F
該不對吧
04/22 02:18, 8F

04/22 06:19, , 9F
是不是不會陣列方式不對阿 ← 這段話是什麼意思? = =
04/22 06:19, 9F

04/22 09:25, , 10F
那我想你懂重點了,改m-1就對
04/22 09:25, 10F
文章代碼(AID): #1BphrLPC (C_Sharp)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1BphrLPC (C_Sharp)