0

テキストボックスをクリックすると、すべてが選択されます。もう一度クリックすると、すべての選択が解除されます。

こんな感じに作ってみました..

 private void url_MouseDown(object sender, MouseEventArgs e)
    {
        url.ReadOnly = false;
        url.SelectAll();
        url.DeselectAll();

    }

私は url.DeselectAll(); を知っています。間違った場所にあります。何か助けはありますか?前もって感謝します!

4

3 に答える 3

0

コードは常に選択してから再び選択解除するため、マウスを押した後は常にテキストの選択が解除されます。

代わりにこれを試してください:

private void url_MouseDown(object sender, MouseEventArgs e)
{
    url.ReadOnly = false;
    if (url.SelectedText.Length < url.Text.Length) {
        url.SelectAll();
    } else {
        url.DeselectAll();
    }
}
于 2013-03-19T21:39:23.673 に答える
0

現在のコードが最初に呼び出す

url.SelectAll();

そしてすぐに呼び出します

url.DeselectAll();

代わりに、切り替えようとしている項目の現在の状態を確認してください。それが正確に何であるかは質問から私には明らかではないので、疑似コードで:

private bool isSelected = false;

private void url_MouseDown(object sender, MouseEventArgs e)
{
    url.ReadOnly = false;
    if (isSelected)
    {
        url.DeselectAll();
    } 
    else 
    {
        url.SelectAll();
    }
    isSelected = !isSelected;
}

IsDeselected現在の状態が選択解除されているかどうかを確認するものに置き換えます。

于 2013-03-19T16:22:52.680 に答える
0

テキストボックス自体をクリックすると選択がクリアされるため、次のようにする必要があります。

    bool selected;
    private void url_MouseDown(object sender, MouseEventArgs e)
    {
        url.ReadOnly = false;
        if (!selected)
        {
            selected = true;
            url.SelectAll();
        }

        else
        {
            selected = false;
            url.DeselectAll();
        }
    }
于 2013-03-19T16:37:27.527 に答える