あなたは次にあなたがTextBox.Clear()
インスタンスメソッドを使用する必要がありますTextBox
内のすべてのテキストをクリアしようとしている場合。
public void ClearTextBoxes()
{
ClearTextBoxes(Controls);
}
private void ClearTextBoxes(Control.ControlCollection controls)
{
if(controls == null)
return;
foreach(var control in controls)
{
(control as TextBox)?.Clear();
ClearTextBoxes(control?.Controls);
}
}
フォームからすべてのTextBox
オブジェクトを削除しようとしている場合は、ControlCollection.Remove(Control)
インスタンスメソッドまたはControlCollection.RemoveAt(int)
インスタンスメソッドを使用する必要があります。
public void RemoveTextBoxes()
{
RemoveTextBoxes(Controls);
}
private void RemoveTextBoxes(Control.ControlCollection controls)
{
if(controls == null)
return;
for(int i = 0; i < controls.Count; ++i)
{
var control = controls[i];
if(control is TextBox)
{
controls.RemoveAt(i);
}
else
RemoveTextBoxes(control?.Controls);
}
}
我々が基になるコレクションを変更しているので、このケースでは、我々はforeach
ループを使用することはできません。
また、C#7を使用している場合は、プライベートメソッドをローカル関数として持つことができます。
編集:@KrzysztofLaで述べたようにTextBox
がIDisposable
を実装しているので、あなたがコレクションからそれを削除した後、あなたはおそらく(あなたがその特定のTextBox
で作業を行っていると仮定すると、それにあなたを処分を呼び出す必要があります)です。
各コントロールの 'Text'プロパティを" blank "に設定しようとしていますか? – gnivler
誰がそのメソッドを削除すると何かを削除すると言う? –
内容を削除する 'control.Text = String.Empty'それを削除するcontainer.Controls.Remove(control) – bradbury9