我是一個初學者,我想用下面的代碼將滑鼠點擊的坐標添加到一個串列中(我想在圖片框的不同地方點擊4次),我想將滑鼠點擊的坐標存盤在一個串列中
。但是這個函式只能在串列中存盤一個最后的坐標(新的坐標替換為最后的坐標,不能添加到串列的末尾)。 (我需要在串列中的4次點擊有4個坐標) (每次點擊后,我在文本框3中都有新的坐標,我在串列中也使用了List < Point > ,結果是一樣的) 謝謝你的幫助
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)。
{
List<String> myPoints = new List<String>()。
textBox3.Text = e.X " , "/span> e.Y;
myPoints.Add(textBox3.Text)。
}
uj5u.com熱心網友回復:
在每次MouseDown時,你都會宣告并初始化你的串列--所以你需要把它移到這個方法之外--這樣它就不會在這個函式的范圍結束后被銷毀,也不會被重新初始化所覆寫。
當你在一個作用域內宣告一個變數時--在本例中是 pictureBox1_MouseDown 方法的作用域,一旦該函式結束,它就會被銷毀。
另外,如果你在函式外宣告一個變數,但在函式內初始化它,像這樣:
List<String> myPoints;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)。
{
myPoints = new List<String> ();
textBox3.Text = e.X " , "/span> e.Y;
myPoints.Add(textBox3.Text)。
}
它不會被銷毀,但是它的內容會被擦除,所以你最終會得到一個空的串列。所以你需要這樣做:
List<String> myPoints = new List<String> ()。
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)。
{
textBox3.Text = e.X " , "/span> e.Y;
myPoints.Add(textBox3.Text)。
}
uj5u.com熱心網友回復:
你每次呼叫 pictureBox1_MouseDown 都會創建一個新的串列。 把它放在外面。
List<String> myPoints = new List<String> ();
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)。
{
textBox3.Text = e.X " , "/span> e.Y;
myPoints.Add(textBox3.Text)。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/333681.html
標籤:
上一篇:Tungsten Fabric SDN — Orchestrator 集成部署模式 — with Kubernetes
