2015-10-28 158 views
0

我正在使用WinForms。在我的表單中,我有一個按鈕和一個面板。當我點擊該按鈕時,我想將面板向右滑動。我遇到了代碼問題。目前,我得到紅色的錯誤線下 = panel2.Location.X + 1;滑動面板

Error Message: Cannot implicitly convert type int to System.Drawing.Point

我試圖用類似的方法,我沒有通過種植面板移動的面板。我在我的代碼中提供了這個。我如何移動面板?

private void btn_Right_Click(object sender, EventArgs e) 
{ 
    // Make Panel Grow 
    //while (panel1.Width < 690) 
    //{ 
    // panel1.Width = panel1.Width + 1; 
    //} 

    while (panel2.Location.X < 690) 
    { 
     panel2.Location = panel2.Location.X + 1; 
    } 
} 
+0

那麼紅色的錯誤說什麼..?我們在這裏不介意讀者.. – MethodMan

+0

您要分配的int一個點 – enkryptor

+0

對不起,錯誤:無法int類型隱式轉換爲System.Drawing.Point @MethodMan –

回答

4

由於您嘗試使用整數設置位置,因此出現錯誤。您將需要一個新的點實例:

panel2.Location = new Point(panel2.Location.X, panel2.Location.Y + 1); 
+0

謝謝,這是做的伎倆。我要查找新的點實例。仍然學習這些術語:) @ c.wider –

+0

有沒有辦法編寫這樣的代碼panel2.Location = new Point(panel2.Location.X +0.5,panel2.Location.Y); .....(0.5)所以幻燈片會更慢。不是+ 1 –

+1

否,一個控件的位置只能用一個整數表示,但我認爲你的問題不是一個太快的滑動比一個更新的問題。嘗試刷新控件後,每一個位置像這樣:panel2.Refresh() –

0

嘗試使用,而不是.Location.X

這工作在VB。左...

Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click 
    If sender.text = ">" Then 
     Do Until Panel1.Left > Me.Width - 50 
      Panel1.Left += 1 
     Loop 
     sender.text = "<" 
    Else 
     Panel1.Left = 511 
     sender.text = ">" 
    End If 
End Sub 

我很驚訝,這是一個它是平滑的 - 面板是空的。