簡體   English   中英

如何在選項卡中選擇 Winforms NumericUpDown 中的所有文本?

[英]How to select all text in Winforms NumericUpDown upon tab in?

當用戶切換到我的NumericUpDown我希望選擇所有文本。 這可能嗎?

private void NumericUpDown1_Enter(object sender, EventArgs e)
{
    NumericUpDown1.Select(0, NumericUpDown1.Text.Length);
}

(注意 Text 屬性隱藏在 Intellisense 中,但它在那里)

我想為將來搜索 Tab 和 Click 的人添加此內容。

Jon B 的答案非常適合 Tab,但我需要修改以包含點擊

如果您使用 Tab 或單擊,下面將選擇文本。如果您單擊並輸入框,則它將選擇文本。 如果您已經專注於該框,則單擊將執行正常操作。

    bool selectByMouse = false;

    private void quickBoxs_Enter(object sender, EventArgs e)
    {
        NumericUpDown curBox = sender as NumericUpDown;
        curBox.Select();
        curBox.Select(0, curBox.Text.Length);
        if (MouseButtons == MouseButtons.Left)
        {
            selectByMouse = true;
        }
    }

    private void quickBoxs_MouseDown(object sender, MouseEventArgs e)
    {
        NumericUpDown curBox = sender as NumericUpDown;
        if (selectByMouse)
        {
            curBox.Select(0, curBox.Text.Length);
            selectByMouse = false;
        }
    }

您可以將它用於多個 numericUpDown 控件。 只需要設置 Enter 和 MouseDown 事件

我環顧四周,我遇到了同樣的問題,這對我有用,首先選擇項目,第二個選擇文本,希望對未來有所幫助

myNumericUpDown.Select();
 myNumericUpDown.Select(0, myNumericUpDown.Value.ToString().Length);

我創建了一個擴展方法來完成這個:

VB:

<Extension()>
Public Sub SelectAll(myNumericUpDown As NumericUpDown)
    myNumericUpDown.Select(0, myNumericUpDown.Text.Length)
End Sub

C#:

public static void SelectAll(this NumericUpDown numericUpDown)
    numericUpDown.Select(0, myNumericUpDown.Text.Length)
End Sub

我有多個 numericupdown 框,並希望為所有人實現這一目標。 我創建:

private void num_Enter(object sender, EventArgs e)
{
    NumericUpDown box = sender as NumericUpDown;
    box.Select();
    box.Select(0, num_Shortage.Value.ToString().Length);
}

然后通過將此函數與每個框的 Enter 事件相關聯(我沒有這樣做),我的目標就實現了。 我花了一段時間才弄清楚,因為我是初學者。 希望這可以幫助其他人

為了通過鼠標單擊或 Tab 按鈕選擇所有文本,我使用:

    public frmMain() {
        InitializeComponent();
        numericUpDown1.Enter += numericUpDown_SelectAll;
        numericUpDown1.MouseUp += numericUpDown_SelectAll;
    }

    private void numericUpDown_SelectAll(object sender, EventArgs e) {
        NumericUpDown box = sender as NumericUpDown;
        box.Select(0, box.Value.ToString().Length);
    }

嘗試

 myNumericUpDown.Select(0, myNumericUpDown.Value.ToString().Length);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM