2013-09-26 38 views
0

我需要一些幫助來動態地改變另一表格上物品的位置。動態地改變表格c之間的物品位置的位置#

我正在嘗試爲我正在製作的應用創建皮膚設計工具,並且需要知道如何處理從一種形式到另一種形式的事件。

我想要做的是在一些文本框中設置一些初始變量,並點擊預覽按鈕,這將打開一個新窗體並顯示皮膚。 然後,我希望能夠通過單擊第一個表單上的按鈕來微調項目的位置。

我確定從form1獲取form2上的初始位置我是這樣做的。

Form1 form1 = (Form1)Application.OpenForms["Form1"]; 
int xPos = 0; 
int yPos = 0; 
if (int.TryParse(form1.textBox1.Text, out xPos)) 
if (int.TryParse(form1.textBox2.Text, out yPos)) 
button1.Location = new Point(xPos,yPos); 

而我在form1中增加位置的按鈕代碼是這樣的。

Form2 PreviewWindow = new Form2(); 
int newText; 
int xPos = 0; 
int yPos = 0; 
if (int.TryParse(textBox1.Text, out xPos)) 
if (int.TryParse(textBox2.Text, out yPos)) 
PreviewWindow.button1.Location = new Point(xPos + 1 , yPos); 
newText = xPos + 1; 
textBox1.Text = newText.ToString(); 

但現在我被卡住了更新事件到第二個form.Would你們任何人都介意給我一些指針?

+0

'但現在我堅持更新事件到第二種形式。你會不會介意給我一些指示謝謝。「我不明白這個說法你想在'Form2'中更新什麼 – 2013-09-26 11:07:38

+0

嗨,我想更新按鈕的位置 –

+0

是不是第二個代碼不會更新按鈕位置在Form2中。換句話說,第二個代碼不能按要求工作? – 2013-09-26 12:15:15

回答

2

第二個代碼不起作用,因爲您正在創建Form2的新實例。試試這個代替

Form2 PreviewWindow = (Form2)Application.OpenForms["Form2"]; 
int newText; 
int xPos = 0; 
int yPos = 0; 
if (int.TryParse(textBox1.Text, out xPos)) 
if (int.TryParse(textBox2.Text, out yPos)) 
PreviewWindow.button1.Location = new Point(xPos + 1 , yPos); 
newText = xPos + 1; 
textBox1.Text = newText.ToString(); 
+1

非常感謝你,這是完美的,我看到我的錯誤對不起,我沒有解釋得很好,但我對此很新。 –

+0

@derekjones很高興我能幫到你 – 2013-09-26 12:33:40

0

你最好在這裏打賭將暴露你想控制的形式的屬性和/或方法。對於TextBox位置,例如:

//Property option: 
public Int32 TextBox1XPos 
{ 
    get 
    { 
     return textBox1.Location.X; 
    } 
    set 
    { 
     textBox1.Location.X = value; 
    } 
} 

public Int32 TextBox1YPos 
{ 
    get 
    { 
     return textBox1.Location.Y; 
    } 
    set 
    { 
     textBox1.Location.Y = value; 
    } 
} 

//Method option 
public void MoveTextBox1(Int32 XPos, Int32 YPos) 
{ 
    textBox1.Location = new Point(XPos, YPos); 
} 

可以爲形式的任何財產上實現這些。這給你一個與表單溝通的間接方式,並不需要設置所有控件到Public曝光。

+0

無法修改返回值System.Windows.Forms.Control.Location,因爲它不是一個變量是我在看這個時得到的。 但我完全瞭解概念thx –