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

C# 呼叫 VB InputBox 的兩種作法:參考組件與自訂表單完整教學

     編輯:關於C語言

C# 本身沒有內建 InputBox 類別,但有時我們需要快速彈出一個輸入對話方塊取得使用者輸入。本文介紹兩種實現方式:一是直接參考 Visual Basic 組件使用現成的 Interaction.InputBox;二是自行繼承 Form 打造功能更豐富的自訂輸入框。

方法一:參考 Microsoft.VisualBasic 組件(最快上手)

  1. 在專案上右鍵 → 加入參考 → 組件 → Framework → 勾選 Microsoft.VisualBasic。
  2. 在程式碼頂端加入命名空間:using Microsoft.VisualBasic;
  3. 直接呼叫靜態方法:
textBox1.Text = Interaction.InputBox(
    "提示文字",      // Prompt
    "對話方塊標題",  // Title
    "預設值",        // DefaultResponse
    -1,              // X 座標 (-1 為螢幕置中)
    -1               // Y 座標 (-1 為螢幕置中)
);

優點: 幾行程式碼即可完成,零學習成本。
缺點: 介面固定、無法自訂驗證邏輯、不支援密碼遮罩、樣式無法配合專案風格。

方法二:自訂 InputBox 表單(彈性最高)

繼承 Form,動態建立 Label、TextBox、Button,支援密碼模式、自訂標題/提示、回傳 DialogResult 與輸入值。

完整程式碼範例

public partial class InputBox : Form
{
    private InputBox()
    {
        InitializeComponent(); // 設計器產生的元件初始化
    }

    public string GetValue() => textBox1.Text;

    /// 
    /// 顯示輸入對話方塊
    /// 
    /// 視窗標題
    /// 提示文字
    /// 是否密碼模式
    /// 輸出參數:使用者輸入的值
    /// 使用者按下確定回傳 true,否則 false
    public static bool Show(string title, string inputTips, bool isPassword, ref string value)
    {
        using (var ib = new InputBox())
        {
            if (!string.IsNullOrEmpty(title)) ib.Text = title;
            if (!string.IsNullOrEmpty(inputTips)) ib.label1.Text = inputTips;
            if (isPassword) ib.textBox1.PasswordChar = '*';

            if (ib.ShowDialog() == DialogResult.OK)
            {
                value = ib.GetValue();
                return true;
            }
            return false;
        }
    }
}

使用方式

string inputValue;
if (InputBox.Show("使用者登入", "請輸入密碼:", true, ref inputValue))
{
    // 使用者按下確定,inputValue 為輸入內容
    // 執行驗證邏輯...
}

進階擴充建議

  • 輸入驗證: 在 textBox1_KeyPress 或 Validating 事件中限制字元類型(如僅允許數字)。
  • 多欄位支援: 將單一 TextBox 改為動態產生多組 Label+TextBox,回傳 Dictionary<string, string>。
  • 主題樣式: 套用專案統一的色系、字型、圓角邊框,使視覺風格一致。
  • 鍵盤快速鍵: 設定 AcceptButton、CancelButton,支援 Enter/ESC 鍵操作。
  • 多螢幕定位: 依 Screen.FromControl(owner) 計算置中座標,避免跨螢幕顯示異常。

選擇建議

需求建議方案
快速原型、內部工具、不需密碼欄位方法一(VB InputBox)
正式產品、需密碼遮罩、自訂驗證、品牌化介面方法二(自訂表單)
需多欄位、複雜互動、資料綁定擴充方法二或使用第三方元件庫

依專案需求選擇適當方案,即可在 C# 專案中輕鬆獲得 InputBox 功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved