gpt4 book ai didi

c# - 如何使多个文本框只读

转载 作者:行者123 更新时间:2023-11-30 20:06:27 25 4
gpt4 key购买 nike

我在通过 stackoverflow 搜索时得到了这个脚本

string commonTextBoxPrefix = "txt";
foreach (Control c in this.Controls)
{
if (c.GetType() == typeof(TextBox) &&
c.ID.StartsWith(commonTextBoxPrefix))
{
((TextBox)c).ReadOnly = true;
}
}

但是当我遍历控件时它没有检测到任何其他控件,它只检测到 {System.Web.UI.LiteralControl} 所以循环没有进入

if (c.GetType() == typeof(TextBox)

为什么代码没有检测到文本框和其他控件。我也尝试了下面的代码

foreach (Control c in parent.Controls)
{
if (c.Controls.Count > 0)
{
ClearControls(c);
}
else
{
switch (c.GetType().ToString())
{
case "System.Web.UI.WebControls.TextBox":
((TextBox)c).Text = "";
break;
case "System.Web.UI.WebControls.CheckBox":
((CheckBox)c).Checked = false;
break;
case "System.Web.UI.WebControls.RadioButton":
((RadioButton)c).Checked = false;
break;
case "System.Web.UI.WebControls.DropDownList":
((DropDownList)c).SelectedIndex = -1;
break;
}
}
}

但是循环不允许进入条件。为什么循环不检测文本框?如何将多个文本框设置为只读?

最佳答案

对我有用

<asp:Panel ID="Panel1" runat="server">
<asp:TextBox ID="txt1" runat="server"></asp:TextBox>
<asp:TextBox ID="txt2" runat="server"></asp:TextBox>
<asp:TextBox ID="txt3" runat="server"></asp:TextBox>
</asp:Panel>

protected void Page_Load(object sender, EventArgs e)
{
ClearTextBoxes(Panel1);
}
protected void ClearTextBoxes(Control control)
{
foreach (Control c in control.Controls)
{
if (c is TextBox && c.ID.StartsWith("txt"))
((TextBox)c).ReadOnly = true;
}
}

enter image description here

关于c# - 如何使多个文本框只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9749079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com