2016-04-07 16 views
0

いいえ。だから私の大学のクラスでは、C#でWindowsフォーム(.Split()でより厳しいバージョンを使って)を使って簡単な電卓を作っていなければなりません。 textBoxがあり、buttonsはほとんどありません。だからf.e. textBoxに番号3を挿入しますが、buttonを押して、数字の後に+という記号を追加します。はい、そうです。しかし、もし私が私のtextBoxに物を書くことに戻ったければ、もう一度クリックしなければならない。ボタンをクリックした後にtextBoxにフォーカスする

そして今、私が使用.Focus()のような答えを見つけたり.Select()を使用して、彼らは動作しますが、彼らはさらにあなたのような全体textBox.textは青色で、あなたのマウスでそれを選択することになるマークしているため、私は、彼らがしたいと思うではないとして、別の番号を押した場合は、textBoxからすべてを消去します。テキスト全体に印を付けることなくこれを行う方法はありますか?代わりにちょうど.Focus()を使用しての

答えて

4

はこの組み合わせのために行く:

// Set focus to control 
txtbox.Focus(); 
// Set text-selection to end 
txtbox.SelectionStart = txtbox.Text.Length == 0 ? 0 : txtbox.Text.Length -1; 
// Set text-selection length (in your case 0 = no blue text) 
txtbox.SelectionLength = 0 

OR

// Set focus to control 
txtbox.Focus(); 

// Check if text is longer then 0 
if(txtbox.Text.Length > 0) 
{ 
    // Set text-selection to end 
    txtbox.SelectionStart = txtbox.Text.Length -1; 
    // Set text-selection length (in your case 0 = no blue text) 
    txtbox.SelectionLength = 0 
} 

どちらの方法は同じです。最初の1つでは、私はtext-length == 0を2行目のインプレースでチェックします。

第2のものでは、私は古典的なifステートメントを使用します。

関連する問題