如何在 TabControl C# 中将标签用于 hide/show 控件
How can I use tag to hide/show controls in TabControl C#
我有一个 TabControl
MyTabs 包含一些标签和文本框,我正在尝试 hide/show MyTabs 中的控件和 show/hide 基于 RadioButton
检查的页面 :
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
foreach (var Ctrl in MyTabs.Controls.OfType<TextBox>())
{
if (Ctrl.Tag.ToString() == "Products")
{
Ctrl.Visible = false;
PgBom.Hide();
}
else
{
Ctrl.Visible = true;
PgBom.Show();
}
}
foreach (var Ctrl in MyTabs.Controls.OfType<Label>())
{
if (Ctrl.Tag.ToString() == "Products")
{
Ctrl.Visible = false;
PgBom.Hide();
}
else
{
Ctrl.Visible = true;
PgBom.Show();
}
}
}
PgBom是MyTabs中的一个页面,我的代码有什么问题吗? .
提前致谢。
我很确定 TabControl
中的 Controls
会是 TabPages
。标签和文本框等控件将进入特定的 TabPage
。因此,要获得控件,则需要遍历所有不同的 TabPages
然后查看每个 TabPages
Controls
集合,如下所示。
此外,将变量设置为... PgBom.Show();
和 PgBom.Hide();
在某种意义上是有问题的,因为当您循环遍历控件时,它可能会被隐藏并 un-hid 多次。最终显示的内容将取决于最后检查的控件的状态。
foreach (TabPage tp in MyTabs.TabPages) {
foreach (var Ctrl in tp.Controls.OfType<TextBox>()) {
if (Ctrl.Tag != null) {
if (Ctrl.Tag.ToString() == "Products") {
Ctrl.Visible = false;
PgBom.Hide();
}
else {
Ctrl.Visible = true;
PgBom.Show();
}
}
}
foreach (var Ctrl in tp.Controls.OfType<Label>()) {
if (Ctrl.Tag != null) {
if (Ctrl.Tag.ToString() == "Products") {
Ctrl.Visible = false;
PgBom.Hide();
}
else {
Ctrl.Visible = true;
PgBom.Show();
}
}
}
}
我有一个 TabControl
MyTabs 包含一些标签和文本框,我正在尝试 hide/show MyTabs 中的控件和 show/hide 基于 RadioButton
检查的页面 :
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
foreach (var Ctrl in MyTabs.Controls.OfType<TextBox>())
{
if (Ctrl.Tag.ToString() == "Products")
{
Ctrl.Visible = false;
PgBom.Hide();
}
else
{
Ctrl.Visible = true;
PgBom.Show();
}
}
foreach (var Ctrl in MyTabs.Controls.OfType<Label>())
{
if (Ctrl.Tag.ToString() == "Products")
{
Ctrl.Visible = false;
PgBom.Hide();
}
else
{
Ctrl.Visible = true;
PgBom.Show();
}
}
}
PgBom是MyTabs中的一个页面,我的代码有什么问题吗? . 提前致谢。
我很确定 TabControl
中的 Controls
会是 TabPages
。标签和文本框等控件将进入特定的 TabPage
。因此,要获得控件,则需要遍历所有不同的 TabPages
然后查看每个 TabPages
Controls
集合,如下所示。
此外,将变量设置为... PgBom.Show();
和 PgBom.Hide();
在某种意义上是有问题的,因为当您循环遍历控件时,它可能会被隐藏并 un-hid 多次。最终显示的内容将取决于最后检查的控件的状态。
foreach (TabPage tp in MyTabs.TabPages) {
foreach (var Ctrl in tp.Controls.OfType<TextBox>()) {
if (Ctrl.Tag != null) {
if (Ctrl.Tag.ToString() == "Products") {
Ctrl.Visible = false;
PgBom.Hide();
}
else {
Ctrl.Visible = true;
PgBom.Show();
}
}
}
foreach (var Ctrl in tp.Controls.OfType<Label>()) {
if (Ctrl.Tag != null) {
if (Ctrl.Tag.ToString() == "Products") {
Ctrl.Visible = false;
PgBom.Hide();
}
else {
Ctrl.Visible = true;
PgBom.Show();
}
}
}
}