0

このコードは、スライドではなく、場所を変更しているだけです。

私は現時点でこれを使用しています:

for (int i = 740; i == 740; i++)
{
   panel2.Location = new Point(panel2.Location.X - i, panel2.Location.Y);      
}

パネルをゆっくりスライドさせるにはどうすればよいですか?

4

2 に答える 2

0

さて、コメントで述べたように、float値を使用する必要があるため、実際に描画する必要があります。ただし、現在の実装では1 回の反復のみが行われます。現在のループは次のように変換できます。

panel2.Location = new Point(panel2.Location.X - 740, panel2.Location.Y);

スライドアウトするには、次のようなループを考えてください。

for (int i = -(panel2.Width); i < 0; i++)
{
   panel2.Location = new Point(i, panel2.Location.Y);
}

そのアルゴリズムは、その幅 (例: -740x) を設定して、画面に表示されないようにしているLocationと想定しています。-逆はそれを隠すでしょう。

これはまだ少し不安定ですが、現在のコードのように非表示にするだけではありません。

于 2013-09-27T12:54:17.017 に答える
0

パネルをスライドさせるだけの場合は、これを試してください

このコードを試してください:

Panel panelArray = new Panel[];
Panel panel2 = panelArray[0];



for (int i = 0; i <= 100; i++)
{
    panel2.Location = new Point(panel2.Location.X - i, panel2.Location.Y);
    System.Threading.Thread.Sleep(10);
}
于 2013-09-27T13:04:43.530 に答える