サーチ…


文字列のコレクションからの自動補完

var source = new AutoCompleteStringCollection();

// Add your collection of strings.
source.AddRange(new[] { "Guybrush Threepwood", "LeChuck" });

var textBox = new TextBox
{
    AutoCompleteCustomSource = source,
    AutoCompleteMode = AutoCompleteMode.SuggestAppend,
    AutoCompleteSource = AutoCompleteSource.CustomSource
};

form.Controls.Add(textBox);

ユーザーがGまたはLを入力しようとすると、これが自動的に完成します。

AutoCompleteMode.SuggestAppendは提案された値のリストを表示し、最初に一致するものを自動的に入力しますAppendのみとSuggestのみが利用可能です。

テキストの数字のみを許可する

textBox.KeyPress += (sender, e) => e.Handled = !char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar);

これにより、 TextBoxの数字と制御文字の使用のみが許可されます。テキストをブロックするには、 Handleプロパティをtrueに設定するのと同じ方法を使用して他の組み合わせも可能です。

ユーザーは不要な文字をコピーして貼り付けることができるので、 TextChangedに追加のチェックをTextChangedて入力をTextChangedする必要があります。

textBox.TextChanged += (sender, e) => textBox.Text = Regex.Match(textBox.Text, @"\d+").Value

この例では、 正規表現を使用してテキストをフィルタリングしています。

可能な場合はNumericUpDownを数値に優先する必要があります。

最後までスクロールする方法

textBox.SelectionStart = textBox.TextLength;
textBox.ScrollToCaret();

同じ原則を適用すると、 SelectionStart0に設定すると上にスクロールしたり、特定の番号に移動して特定の文字に移動することができます。

テキストボックスにプレースホルダを追加する

このコードは、 ヒントテキストをフォームの読み込み位置に配置し、次のように操作します。

C#

private void Form_load(object sender, EventArgs e)
{
    textBox.Text = "Place Holder text...";
}

private void textBox_Enter(object sender, EventArgs e)
{
    if(textBox.Text == "Place Holder text...")
    {
        textBox.Text = "";
    }
}

private void textBox_Leave(object sender, EventArgs e)
{
    if(textBox.Text.Trim() == "")
    {
        textBox.Text = "Place Holder text...";
    }
}

VB.NET

Private Sub Form_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    textBox.Text = "Place Holder text..."
End Sub

Private Sub textBox_GotFocus(sender as Object,e as EventArgs) Handles textBox.GotFocus
    if Trim(textBox.Text) = "Place Holder text..." Then
        textBox.Text = ""
    End If
End Sub

Private Sub textBox_LostFocus(sender as Object,e as EventArgs) Handles textBox.LostFocus
    if Trim(textBox.Text) = "" Then
        textBox.Text = "Place Holder text..."
    End If
End Sub


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow