winforms
テキストボックス
サーチ…
文字列のコレクションからの自動補完
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();
同じ原則を適用すると、 SelectionStart
を0
に設定すると上にスクロールしたり、特定の番号に移動して特定の文字に移動することができます。
テキストボックスにプレースホルダを追加する
このコードは、 ヒントテキストをフォームの読み込み位置に配置し、次のように操作します。
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