C# 滑动面板

C# 滑动面板,c#,.net,winforms,panel,move,C#,.net,Winforms,Panel,Move,我正在使用WinForms。在我的表格中,我有一个按钮和一个面板。当我点击该按钮时,我想将面板向右滑动。我对代码有问题。目前,我得到红色的错误线下 =panel2.Location.X+1 错误消息:无法将int类型隐式转换为System.Drawing.Point 我试着用类似的方法移动面板,我通过增加面板来移动面板。我在代码中提供了这一点。如何移动面板 private void btn_Right_Click(object sender, EventArgs e) { // M

我正在使用WinForms。在我的表格中,我有一个按钮和一个面板。当我点击该按钮时,我想将面板向右滑动。我对代码有问题。目前,我得到红色的错误线下
=panel2.Location.X+1

错误消息:无法将int类型隐式转换为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;
    }
}
private void btn\u右键单击(对象发送方,事件参数e)
{   
//使面板成长
//而(面板1.宽度<690)
//{
//面板1.宽度=面板1.宽度+1;
//}
同时(面板2.位置X<690)
{
panel2.位置=panel2.位置.X+1;
}
}

由于尝试使用整数设置位置,因此出现错误。您将需要一个新的点实例:

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

由于尝试使用整数设置位置,因此出现错误。您将需要一个新的点实例:

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

尝试使用.Left而不是.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
Private子按钮6\u单击(发送者作为对象,e作为事件参数)处理按钮6。单击
如果sender.text=“>”则
直到面板1.左>中。宽度-50
面板1.左+=1
环
sender.text=“”
如果结束
端接头

我很惊讶它是一个平滑的面板,但是面板是空的。

尝试使用.Left而不是.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
Private子按钮6\u单击(发送者作为对象,e作为事件参数)处理按钮6。单击
如果sender.text=“>”则
直到面板1.左>中。宽度-50
面板1.左+=1
环
sender.text=“”
如果结束
端接头

我很惊讶这是一个平滑的面板,但是面板是空的。

那么红色的错误说明了什么。。?这里我们不是读心术的人..您试图将int指定给一个点抱歉,错误:无法将int类型隐式转换为System.Drawing.Point@MethodMan为什么不执行以下操作
panel2.Location=new Point(x,y)红色的错误是怎么说的。。?这里我们不是读心术的人..您试图将int指定给一个点抱歉,错误:无法将int类型隐式转换为System.Drawing.Point@MethodMan为什么不执行以下操作
panel2.Location=new Point(x,y)谢谢,这就成功了。我将查找新的点实例。仍然在学习这些术语:)@c.wideris有一种方法可以编写如下panel2.Location=newpoint(panel2.Location.X+0.5,panel2.Location.Y)。。。。。(0.5)因此滑动速度会变慢。不是+1否,控件的位置只能由整数表示,但我认为您的问题不是滑动太快,而是刷新问题。尝试在每一组位置之后刷新控件,如下所示:panel2.Refresh()谢谢,这就成功了。我将查找新的点实例。仍然在学习这些术语:)@c.wideris有一种方法可以编写如下panel2.Location=newpoint(panel2.Location.X+0.5,panel2.Location.Y)。。。。。(0.5)因此滑动速度会变慢。不是+1否,控件的位置只能由整数表示,但我认为您的问题不是滑动太快,而是刷新问题。尝试在每一组位置之后刷新控件,如下所示:panel2.Refresh()