私は入力用にいくつかのテキストボックスを持っています。 フォームのすべてのエントリをクリアするためのショートカットはありますか?すべてのテキストボックスをクリアする(任意のショートカット)
すべてのテキストボックスがフォームの直接の子である場合は、その後の.text = String.Emptyを
私は入力用にいくつかのテキストボックスを持っています。 フォームのすべてのエントリをクリアするためのショートカットはありますか?すべてのテキストボックスをクリアする(任意のショートカット)
すべてのテキストボックスがフォームの直接の子である場合は、その後の.text = String.Emptyを
例えば、すべてのテキストボックスをクリアするには、上記のクリックイベントのように、この関数を呼び出し
yourForm.Controls.OfType<TextBox>().ToList().ForEach(textBox => textBox.Clear());
これを拡張メソッドとして実装することを検討してください。 –
また、削除されたコメントに記載されているように、フォーム上のすべてのコンテナコントロールもチェックする必要があります。 –
はい、これはネストされたループにつながるので、@フレデリックの答えは良いですhttp://stackoverflow.com/questions/7034161/clear-all-textboxes-any-shortcut/7034178#7034178 –
var cntrlCollections = GetAll(this,typeof(TextBox));
foreach (Control ctrl in cntrlCollections)
{
if (ctrl is TextBox)
{
ctrl.Text = " ";
}
}
public IEnumerable<Control> GetAll(Control control, Type type)
{
var controls = control.Controls.Cast<Control>();
return controls.SelectMany(ctrl=>GetAll(ctrl,type)).Concat(controls).Where
(c=>c.GetType() ==type);
}
:あなたは、LINQを使用することができます。これがあなたに役立つことを願っています。
Fredericのコメント - ActiveForm yourform.ActiveForm.Controls. ...
を使用する必要があります。
エラーをドロップyourform.Controls. ...
Beacuse:
An object reference is required for the non-static field, method, or property 'System.Windows.Forms.Control.Controls.get
は、これを実現するために私が知っ唯一の方法は、再帰的にコントロールツリーを反復処理することであるVS2012Express
に適用するタイプをチェックし、クリア制御。 http://stackoverflow.com/questions/4811229/how-to-clear-the-text-of-all-textboxes-in-the-form – RoccoC5