2017-08-07 49 views
0

我在Windows窗體和兩個文本框中有一個圖像。我希望當我在這些文本框中輸入數值並按下回車鍵時,它應該會影響圖像:圖像的高度和寬度應該更改爲文本框值。如何通過在C#窗體中輸入文本框來改變圖像的大小?

private void buttonZ1_Click(object sender, EventArgs e) 
{ 
    PictureBox pb = new PictureBox(); 
    pb.SizeMode = PictureBoxSizeMode.StretchImage; 
    pb.Image = new Bitmap("C:\\Users\\user\\Desktop\\rectangle.png"); 
    Point p = new Point(250 + i, 60 * i); 

    pb.Location = p; 
    this.Controls.Add(pb); 
    i++; 
    textBox1.Text = Convert.ToString(pb.Height); 
    textBox2.Text = Convert.ToString(pb.Width); 
    textBox3.Text = pb.Location.X.ToString(); 
    textBox4.Text = pb.Location.Y.ToString(); 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    PictureBox pb = new PictureBox(); 
    pb.Height = Convert.ToInt32(textBox1.Text); 
    pb.Width = Convert.ToInt32(textBox2.Text); 
} 
+0

以何種方式無效?請注意,您正在創建一個「PictureBox」並設置它的「高度」和「寬度」,但是您沒有對它做任何事情。你永遠不會顯示它。 – David

+0

您需要在窗體的任何地方重複使用相同的'PictureBox'實例。否則,你只是不斷添加新的。使'pb'成爲一個實例變量並避免重新創建它。 – poke

+0

下一步應該做什麼,請幫助,因爲我是新的c# – Amit

回答

0

你這樣做每次:

new PictureBox() 

您創建一個新PictureBox,完全無關的已存在的任何其他PictureBox。因此,在您的button1_Click方法中,每次單擊該按鈕時,都會創建一個新的PictureBox。但是,你永遠不會顯示那個PictureBox,它只存在於內存中(直到方法結束,它就消失了)。

這聽起來像你想要設置你在buttonZ1_Click中創建的PictureBox的值。如果是這種情況,請將其設置爲表單上的類級變量。事情是這樣的:

PictureBox pb = new PictureBox(); 

private void buttonZ1_Click(object sender, EventArgs e) 
{ 
    pb.SizeMode = PictureBoxSizeMode.StretchImage; 
    pb.Image = new Bitmap("C:\\Users\\user\\Desktop\\rectangle.png"); 
    // etc. 

    // The code here doesn't change, you just remove the first "new PictureBox()" line 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    pb.Height = Convert.ToInt32(textBox1.Text); 
    pb.Width = Convert.ToInt32(textBox2.Text); 
} 

這段代碼之間唯一的區別和你的是,PictureBox的實例聲明,在類級別創建的,而不是反覆在每個方法。因此,每種方法都將使用PictureBox的相同實例。 (請注意命令new PictureBox()現在只能被調用一次,因此只創建一個實例。)

0

這好像你做一個新實例爲您PictureBox控制每一次,你應該在的WinForms設計師的PictureBox控件起一個名字,然後做這樣的事情在後面的代碼:

private void button1_Click(object sender, EventArgs e) 
    { 

     PictureBoxName.Width = TxtBox1.Text; 
     PictureBoxName.Height = TxtBox2.Text; 



    } 

它會確保您每次單擊按鈕時使用相同的實例。

請確保您在TextBox控件上設置了整數值,您可以對其進行一些驗證。

+0

如何找到button_1上的位置點擊 – Amit

相關問題