このコードは、スライドではなく、場所を変更しているだけです。
私は現時点でこれを使用しています:
for (int i = 740; i == 740; i++)
{
panel2.Location = new Point(panel2.Location.X - i, panel2.Location.Y);
}
パネルをゆっくりスライドさせるにはどうすればよいですか?
さて、コメントで述べたように、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
と想定しています。-
逆はそれを隠すでしょう。
これはまだ少し不安定ですが、現在のコードのように非表示にするだけではありません。
パネルをスライドさせるだけの場合は、これを試してください
このコードを試してください:
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);
}