首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# Windows Forms 程式設計練習題與解答(五):常用控制項、計算機、資源管理器

     編輯:關於C語言

練習 1:填空題——控制項關鍵屬性

題目答案
控制項是否回應使用者互動Enabled
控制項是否顯示Visible
TextBox 輸入密碼字元PasswordChar
CheckBox CheckState 為 Indeterminate 時,Checked 值Unchecked
將 RadioButton 分組Panel 或 GroupBox
ComboBox 禁止編輯文字DropDownStyle = DropDownList
MenuStrip 選單項目快捷鍵ShortcutKeys
ListView 顯示模式View

練習 2:判斷題

  1. 控制項是屬性、方法、事件的封裝集合 —— 正確
  2. TextBox 僅能單行輸入 —— 錯誤(可設 Multiline=True 多行)
  3. RichTextBox 僅能操作 RTF 檔 —— 錯誤(亦可純文字)
  4. CheckBox Checked 與 CheckState 值恆相同 —— 錯誤(三態時不同)
  5. ToolTip 顯示控制項自訂提示 —— 正確

練習 3:TextBox、MaskedTextBox、RichTextBox 適用場合

  • TextBox:一般單段文字編輯,單行/多行、密碼輸入。
  • MaskedTextBox:特定格式輸入(日期、電話等),格式錯誤觸發 MaskInputRejected 事件。
  • RichTextBox:進階多段文字編輯,支援字型/段落格式、尋找取代、RTF 檔案互通。

練習 4:CheckBox 與 RadioButton 差異

  • CheckBox:獨立選項,可多選(複選),支援三態(Indeterminate)。
  • RadioButton:同群組內單選,選取一項自動取消其他。

練習 5:按鈕點擊計數顯示於 TextBox

介面設計

  • textBox1:Multiline=True, ScrollBars=Vertical
  • button1:開始計數
  • button2:停止計數

核心程式碼

int count = 1;
bool isAdding = true;

private void button1_Click(object sender, EventArgs e)
{
    if (isAdding)
        textBox1.Text += $"第 {count} 次點擊按鈕\r\n";
    count++;
}

private void button2_Click(object sender, EventArgs e)
{
    isAdding = false;
}

練習 6:ListBox 自動加入 10 個數字

int baseNum = 1;
private void button1_Click(object sender, EventArgs e)
{
    for (int i = baseNum; i < baseNum + 10; i++)
        listBox1.Items.Add(i);
    baseNum += 10;
}

練習 7:簡易計算機(0~4 整數加減)

關鍵設計

  • 數字按鈕共用 InputNumber 事件處理函式,透過 sender 區分。
  • 使用 enum calculateType { none, add, sub } 記錄運算狀態。
  • isY 標記是否為新運算數輸入階段。

核心邏輯

private void InputNumber(object sender, EventArgs e)
{
    Button btn = (Button)sender;
    if (isY) { textBox.Clear(); isY = false; }
    textBox.Text += btn.Text;
}

private void addButton_Click(object sender, EventArgs e)
{
    calcType = calculateType.add;
    x = Convert.ToInt32(textBox.Text);
    isY = true;
}
// 減法、等號、清除邏輯類似

練習 8:TreeView + ListView 實作簡易資源管理器

架構

  • SplitContainer:左側 TreeView 顯示目錄樹,右側 ListView 顯示檔案清單。
  • ImageList:提供資料夾/檔案圖示。
  • 遞迴 GetDirectories 建立樹節點,Tag 屬性儲存 DirectoryInfo 物件。
  • NodeMouseClick 事件:依選取節點填充 ListView(子目錄與檔案)。

關鍵程式碼片段

private void PopulateTreeView()
{
    DirectoryInfo info = new DirectoryInfo(@"C:\Documents and Settings");
    if (info.Exists)
    {
        TreeNode root = new TreeNode(info.Name) { Tag = info };
        GetDirectories(info.GetDirectories(), root);
        treeView1.Nodes.Add(root);
    }
}

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
    listView1.Items.Clear();
    DirectoryInfo dir = (DirectoryInfo)e.Node.Tag;
    // 加入子目錄
    foreach (var d in dir.GetDirectories())
        AddListViewItem(d.Name, "Directory", d.LastAccessTime);
    // 加入檔案
    foreach (var f in dir.GetFiles())
        AddListViewItem(f.Name, "File", f.LastAccessTime);
    listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved