C# 入門指南

單元 27 - 完成版的 WpfAppDemo 專案

~~學習進度表~~

拷貝按鈕的 CopyButton_Click() 實作如下

以下為 CopyButton_Click() 的完整程式碼

private void CopyButton_Click(object sender, RoutedEventArgs e)
{
    if (Result != "")
    {
        Clipboard.SetText(Result);
        DisplayBlock.Text = "已拷貝!";
    }
    else
    {
        DisplayBlock.Text = "無資料!";
    }
}

完整程式請參考「範例程式篇」的「 MainWindow.xaml.cs 」。

這裡先判斷 Result 屬性 (property) 是否為空字串 (empty string) ,如果 Result 屬性為空字串,那就表示沒有編碼結果,拷貝也就沒有意義

if (Result != "")

如果 Result 不是空字串,就進行把 Result 設定到系統剪貼簿的動作

Clipboard.SetText(Result);
DisplayBlock.Text = "已拷貝!";

這裡是用 Clipboard 類別的 SetText() 方法進行將 Result 設定到系統剪貼簿, SetText() 同樣是 static 方法 (method) ,因此可由類別 (class) 名稱 Clipboard 呼叫,然後在 DisplayBlock 顯示「已拷貝!」的文字,如果 Result 為空字串就顯示「無資料!」。

清除按鈕的 ClearButton_Click() 實作如下

以下為 ClearButton_Click() 的完整程式碼

private void ClearButton_Click(object sender, RoutedEventArgs e)
{
    InputText.Text = "";
    OutputText.Text = "";
    EncryptObject = null;
    Result = "";
    DisplayBlock.Text = "已清除!";
}

清除就是把 EncryptObject 重新設定為 null ,然後將文字相關的都設定成空字串,然後在 DisplayBlock 顯示「已清除!」。

繼續按上方的開始按鈕進行測試,先進行編碼

按下拷貝按鈕

就可以把編碼結果貼到其他地方,例如記事本

繼續按下清除按鈕,所有設定就會清空

這個「編密碼小工具」已經大致完成,下一個單元開始討論怎麼開發 Android App 。

相關教學影片

上一頁 單元 26 - 存檔與載入
回 C# 入門指南首頁
下一頁 單元 28 - 認識 Android App 開發
回 C# 教材首頁
回程式語言教材首頁
中英文術語對照
類別class
空字串empty string
方法method
屬性property
參考資料
1. Visual Studio | Microsoft Docs - 使用 Visual Studio 進行 C# 開發
2. Visual Studio | Microsoft Docs - 教學課程:使用 C# 建立一個簡單的應用程式
重點整理
1. 拷貝按鈕是利用 ClipboardSetText() 把結果設定到系統剪貼簿。
2. 清空按鈕是把文字相關的屬性設定為空字串, Encrypt 物件設定為 null
問題與討論
1. 為什麼拷貝前要先檢查 Result 是否為空字串?
2. 清空的目的是清空所有輸入及輸出,除了上面所提的方式外,有更好的方式嗎?
練習
1. 承接上一個單元的 HelloDemo 專案,替 MainWindow 類別加入 int 型態的屬性 Count ,然後在建構子 MainWindow() 中,將 Count 設定為 0
2. 承接上一個單元的 GuessGameDemo 專案,繼續加入 int 型態的屬性 Countstring 型態的屬性 UserInputbool 型態的屬性 State
3. 承上題,在 GameWindow 類別的建構子 GameWindow()InitializeComponent(); 底下加入以下程式碼
State = false;
4. 承上題,把 GameWindow 類別的 NewGame_Click() 方法更換為以下程式碼
Display.Document.Blocks.Clear();
Game = new Guess(Number);
Count = 0;
UserInput = "";
State = true;
Display.AppendText("遊戲開始\r");
5. 承上題,替 GameWindow.xaml 建立連動的方法,每個方法利用 DisplayAppendText() 方法附加阿拉伯數字的字串,例如以下程式碼
Display.AppendText("1");