WinForms 界面中,`TextBox` 初始為**唯讀**狀態,用戶點擊特定按鈕後才允許編輯輸入。
// 設計時設置 TextBox.ReadOnly = true
private void btnEnableEdit_Click(object sender, EventArgs e)
{
txtInput.ReadOnly = false; // 允許編輯
txtInput.Focus(); // 可選:自動聚焦
txtInput.SelectionStart = txtInput.Text.Length; // 光標移至末尾
}
private void btnToggleEdit_Click(object sender, EventArgs e)
{
txtInput.ReadOnly = !txtInput.ReadOnly;
btnToggleEdit.Text = txtInput.ReadOnly ? "啟用編輯" : "鎖定編輯";
// 視覺提示:唯讀時灰背景,可編輯時白背景
txtInput.BackColor = txtInput.ReadOnly ? SystemColors.Control : SystemColors.Window;
if (!txtInput.ReadOnly)
{
txtInput.Focus();
}
}
| 屬性 | ReadOnly = true | Enabled = false |
|---|---|---|
| 用戶可編輯 | 否 | 否 |
| 可獲得焦點 | 是 | 否 |
| 可複製文本 | 是 | 是 |
| Tab 鍵導航 | 可停留 | 跳過 |
| 外觀 | 正常白底(可自定義) | 灰底禁用狀態 |
| 適用場景 | 需選中複製、後續啟用編輯 | 完全禁用、不參與交互 |
最佳回答核心:「textbox默認readonly屬性為true,當點擊某個按鈕後修改此屬性為false,就可以輸入了」—— 簡單直接,切中要害。