【问题标题】:Moving (change location) object to up while mousedown on button在鼠标按下按钮时将对象向上移动(更改位置)
【发布时间】:2012-12-29 19:47:33
【问题描述】:

我想更改单选按钮的位置并在我单击按钮时使其向上移动

试过了

private void up_MouseDown(object sender, MouseEventArgs e)
{
    while(P.Location.Y>0)
    P.Location = new System.Drawing.Point(P.Location.X, P.Location.Y - 1);    
}

Pradiobutton


我希望它在我按下时继续向上移动,但它只是跳到表格的顶部。 它在调试中运行良好,但它确实进展迅速 我想减慢单选按钮的移动并使其可见

【问题讨论】:

    标签: c# winforms location visible slowdown


    【解决方案1】:

    实际上,您正在启动一个 while 循环,直到您的 RadioButton 位于表单顶部时才会退出,无论您是否仍在按下按钮。您可以通过在循环中放置一个 Thread.Sleep 来减慢它的速度,这样它就会减慢可见。

    private void up_MouseDown(object sender, MouseEventArgs e)
    {
        while (P.Location.Y > 0)
        {
            P.Location = new System.Drawing.Point(P.Location.X, P.Location.Y - 1);
            System.Threading.Thread.Sleep(10);
        }
    
    }
    

    如果您想更好地控制我会使用计时器。在本例中,间隔设置为 10。

    private void up_MouseDown(object sender, MouseEventArgs e)
    {
        timer1.Start();
    }
    
    private void up_MouseUp(object sender, MouseEventArgs e)
    {
        timer1.Stop();
    }
    
    private void timer1_Tick(object sender, EventArgs e)
    {
        if (P.Location.Y > 0)
        {
            P.Location = new System.Drawing.Point(P.Location.X, P.Location.Y - 1);
        }
    }
    

    【讨论】:

    • @AmjadArab 欢迎您,如果您得到的任何一个答案回答了您的问题,请务必单击答案右侧的复选标记,它会将问题标记为已回答,您和回答者将获得一些声誉。
    【解决方案2】:

    您可以使用计时器。从工具箱中添加一个计时器,说它的名字是timer1,然后添加以下方法:

    private void P_MouseUp(object sender, MouseEventArgs e) {
        timer1.Enabled=false;
    }
    
    private void P_MouseDown(object sender, MouseEventArgs e) {
        timer1.Enabled=true;
    }
    
    private void timer1_Tick(object sender, EventArgs e) {
        if(P.Location.Y>0)
            P.Location=new System.Drawing.Point(P.Location.X, P.Location.Y-1);
    }
    

    您可以在属性窗口中更改 timer1 的时间间隔。我猜你写这个是为了好玩;所以,玩得开心!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-23
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      相关资源
      最近更新 更多