English 中文(简体)
检查控制是否为 Tab 控制内部的文本框
原标题:Check if Control is Textbox within TabControl

为了清除我的文本框,我用以下代码表格:

foreach (Control c in this.Controls)
{
    if (c is TextBox || c is RichTextBox)
    {
        c.Text = "";
    }
}

但现在我的文字框位于 Tab Control 内。 我怎样才能对文字框进行同样的检查, 如果控制是文本框, 请将值设为“ ” 。 我已经尝试过使用 :

foreach(Control c in tabControl1.Controls)

但是,这没有奏效。

最佳回答

使用此

foreach (TabPage t in tabControl1.TabPages)
{
    foreach (Control c in t.Controls)
    { 
        if (c is TextBox || c is RichTextBox)
        {
            c.Text = "";
        }
    }
}
问题回答

您也可以使用 < a href=> http:// msdn. microsoft.com/ en- us/library/ bb360913.aspx" rel = "nofollow"\\ code > {code>Enumberable. ofType . TextBox > RichTextBox 是您从 TextBoxBase 继承的唯一控制, 这是您正在寻找的类型 :

var allTextControls = tabControl1.TabPages.Cast<TabPage>() 
   .SelectMany(tp => tp.Controls.OfType<TextBoxBase>());
foreach (var c in allTextControls)
    c.Text = "";

选项卡控制 选项卡控制包含 TabPage 。 您需要瞄准正确的页面 。

或者,你可以建立一种循环方法来做到这一点:

static void RecurseClearAllTextBoxes(Control parent)
{
    foreach (Control control in parent.Controls)
    {
        if (control is TextBox || control is RichTextBox)
            control.Text = String.Empty;
        else
            RecurseClearAllTextBoxes(control);
    }

    if (parent is TabControl)
    {
        foreach (TabPage tabPage in ((TabControl)parent).TabPages)
            RecurseClearAllTextBoxes(tabPage);
    }
}

林地控制器

        foreach (Control C in GB.Controls)
        { 
            if(C is TextBox)
            {
                (C as TextBox).Clear();
            }
            if(C is DateTimePicker)
            {
                (C as DateTimePicker).Value = DateTime.Now;
            }
            if (C is ComboBox)
            {
                (C as ComboBox).SelectedIndex = 0;
            }
        }




相关问题
Bring window to foreground after Mutex fails

I was wondering if someone can tell me what would be the best way to bring my application to the foreground if a mutex was not able to be created for a new instance. E.g.: Application X is running ...

How to start WinForm app minimized to tray?

I ve successfully created an app that minimizes to the tray using a NotifyIcon. When the form is manually closed it is successfully hidden from the desktop, taskbar, and alt-tab. The problem occurs ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

Handle DataTable.DataRow cell change event

I have a DataTable that has several DataColumns and DataRow. Now i would like to handle an event when cell of this DataRow is changed. How to do this in c#?

Apparent Memory Leak in DataGridView

How do you force a DataGridView to release its reference to a bound DataSet? We have a rather large dataset being displayed in a DataGridView and noticed that resources were not being freed after the ...

ALT Key Shortcuts Hidden

I am using VS2008 and creating forms. By default, the underscore of the character in a textbox when using an ampersand is not shown when I run the application. ex. "&Goto Here" is not ...

WPF-XAML window in Winforms Application

I have a Winforms application coded in VS C# 2008 and want to insert a WPF window into the window pane of Winforms application. Could you explain me how this is done.

热门标签