2014-04-10 30 views
2

我想在我的應用程序中添加一個「正在加載...」文本(或其他此類文本)。但這是最簡單的做法嗎?這是製作「動畫」文字的最簡單方法嗎?

我使用這個代碼的時刻:

private void timer1_Tick(object sender, EventArgs e) 
{ 
    if (label1.Text == "Loading") 
     label1.Text = "Loading ."; 
    else if (label1.Text == "Loading .") 
     label1.Text = "Loading . ."; 
    else if (label1.Text == "Loading . .") 
     label1.Text = "Loading . . ."; 
    else if (label1.Text == "Loading . . .") 
     label1.Text = "Loading"; 
} 

回答

0

我沒有運行的代碼,但我希望你的想法。

string[] messages = { 
    "loading", 
    "loading .", 
    "loading ..", 
    "loading ..." 
}; 

int turn = 0; 

private void timer1_Tick(object sender, EventArgs e) 
{ 
    label1.Text = messages[turn++]; 
    turn %= messages.Length; 
} 
+0

'System.Array'不包含'lenght'的定義,也沒有擴展方法'長度'接受'System.Array'類型的第一個參數可以找到(你是否缺少使用指令或程序集引用?) – Jyrka98

+1

它應該是'長度'而不是'長度';我編輯了@SAM文章來修復它;無論如何,在這裏尋找我的答案:它給你一個_more compact_解決方案 –

+1

這工作,因爲我需要它。 :) – Jyrka98

0

較短的方式爲你的方法

private void timer1_Tick(object sender, EventArgs e) 
{ 
    label1.Text = (label1.Text == "Loading . . .") ? "Loading" : (label1.Text + " ."); 
} 
2

如何:

private int numberOfPoints = 0; 

private void timer1_Tick(object sender, EventArgs e) 
{ 
    int maxPoints = 3; 
    label.Text = "Loading" + new string('.', numberOfPoints); 
    numberOfPoints = (numberOfPoints + 1) % (maxPoints + 1); 
} 
-1

我不知道這TECHNOLOGIE使用,但在WPF,Silverlight,WP,Win8等中,您應該使用Storyboards

Storyboards Overview

該主題將演示如何使用情節提要對象組織和應用動畫。它描述瞭如何交互式操縱Storyboard對象並描述間接屬性目標語法。

樣本:

<Storyboard> 
    <DoubleAnimation 
    Storyboard.TargetName="MyRectangle" 
    Storyboard.TargetProperty="Width" 
    From="100" To="200" Duration="0:0:1" /> 

    <ColorAnimation 
    Storyboard.TargetName="MySolidColorBrush" 
    Storyboard.TargetProperty="Color" 
    From="Blue" To="Red" Duration="0:0:1" /> 
</Storyboard> 

有關的WinForms,你可以找到你的答案here

本文的目的是解釋如何將動畫添加到Windows窗體。第一部分將通過設計Windows窗體來簡要介紹背後的過程。接下來將是一個使用Graphics類在Form上繪圖的示例。最後,本文將以可以在.NET Framework的DOS提示符下編譯的代碼或使用構成Visual Studio項目的單獨文件構建的代碼結束。

+0

我使用C#Windows窗體應用程序。 – Jyrka98

+0

這個技術是爲我的答案老。你可以在這裏找到你的答案(http://www.codeproject.com/Articles/24664/Animation-on-Windows-Forms) – aloisdg

0

我建議類似的東西:

private int counter = 0; 

private void timer1_Tick(object sender, EventArgs e) 
{ 
    label1.Text = string.Format("Loading{0}", new string('.', (++counter) % 3)); 
} 
相關問題