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 。
相關教學影片
中英文術語對照 | |
---|---|
類別 | class |
空字串 | empty string |
方法 | method |
屬性 | property |
參考資料 | |
---|---|
1. Visual Studio | Microsoft Docs - 使用 Visual Studio 進行 C# 開發 | |
2. Visual Studio | Microsoft Docs - 教學課程:使用 C# 建立一個簡單的應用程式 |
重點整理 |
---|
1. 拷貝按鈕是利用 Clipboard 的 SetText() 把結果設定到系統剪貼簿。 |
2. 清空按鈕是把文字相關的屬性設定為空字串, Encrypt 物件設定為 null 。 |
問題與討論 |
---|
1. 為什麼拷貝前要先檢查 Result 是否為空字串? |
2. 清空的目的是清空所有輸入及輸出,除了上面所提的方式外,有更好的方式嗎? |
練習 |
---|
1. 承接上一個單元的 HelloDemo 專案,替 MainWindow 類別加入 int 型態的屬性 Count ,然後在建構子 MainWindow() 中,將 Count 設定為 0 。 |
2. 承接上一個單元的 GuessGameDemo 專案,繼續加入 int 型態的屬性 Count 、 string 型態的屬性 UserInput 及 bool 型態的屬性 State 。 |
3. 承上題,在 GameWindow 類別的建構子 GameWindow() 的 InitializeComponent(); 底下加入以下程式碼
|
4. 承上題,把 GameWindow 類別的 NewGame_Click() 方法更換為以下程式碼
|
5. 承上題,替 GameWindow.xaml 建立連動的方法,每個方法利用 Display 的 AppendText() 方法附加阿拉伯數字的字串,例如以下程式碼
|