1

ボタンを押すと、すべてのテキストボックス、コンボボックスをクリアし、numericupdown をゼロにリセットしたいと考えています。

それを行う最良の方法は何ですか。誰かがこのqをばかげていると思ったらごめんなさい。

4

3 に答える 3

2

WinForms を使用している場合は、次を使用して、必要なすべてのコントロールをクリアできます。

public void ClearTextBoxes(Control control)
{
    foreach (Control c in control.Controls)
    {
        if (c is TextBox)
        {
            if (!(c.Parent is NumericUpDown))
            {
                ((TextBox)c).Clear();
            }
        }
        else if (c is NumericUpDown)
        {
            ((NumericUpDown)c).Value = 0;
        }
        else if (c is ComboBox)
        {
            ((ComboBox)c).SelectedIndex = 0;
        }

        if (c.HasChildren)
        {
            ClearTextBoxes(c);
        }
    }
}

それを有効にするには、コード ビハインドで次のようにフォームにボタンを追加するだけです。

private void button1_Click(object sender, EventArgs e)
{
    ClearTextBoxes(this);
}
于 2013-02-14T17:17:03.643 に答える
1
public void ClearTextBoxes(Control parent)
{
    foreach(Control c in parent.Controls)
    {
        ClearTextBoxes(c);
        if(c is TextBox) c.Text = string.Empty;
        if(c is ComboBox) c.SelectedIndex = 0;
    }
}

また

public void ClearTextBoxes(Control ctrl) 
{ 
    if (ctrl != null) 
    { 
        foreach (Control c in ctrl.Controls) 
        { 
            if (c is TextBox)
            {   
                ((TextBox)c).Text = string.empty; 
            } 

            if(c is ComboBox)
            {
                ((ComboBox)c).SelectedIndex = 0;
            }
            ClearTextBoxes(c); 
        } 
    } 
} 
于 2013-02-14T17:17:59.427 に答える
-1

これが WinForms の場合、すべてのコントロールを反復処理してリセットします

foreach (Control c in this.Controls)
{
   if (c is TextBox)
   {
        ((TextBox)c).Text = "";
   }
   else if (c is ComboBox)
   {
        ((ComboBox)c).SelectedIndex = 0;
   }
   else if (c is NumericUpDown)
   {
        ((NumericUpDown)c).Value= 0;
   }
}
于 2013-02-14T17:16:50.350 に答える