System.Web.UI.WebControls.TextBox多行边框

时间:2012-06-20 07:32:05

标签: c# asp.net styles

  

可能重复:
  Default textbox border-style and width

我的页面上有一些TextBox,它应该是背后代码的红色边框。 但是呈现vertica滚动条的Multiline TextBox不会显示边框。

以下是设置边框的代码:

            foreach (var str in idsRequired)
            {
                var ctrl = (WebControl)FindControl(str);
                if (ctrl != null)
                    ctrl.Style.Add(HtmlTextWriterStyle.BorderColor, "red");
            }

我通过ID和设置边框获得控件。 问题是:我如何才能正确地对齐所有TextBox控件?

修改

我最终将边框样式设置为2px并出现右边框。正如你在这里看到的那样:

enter image description here

你怎么解释这个?

1 个答案:

答案 0 :(得分:2)

作为建议,尝试将控件的样式委托给CSS文件或ASP.Net主题。为什么?因为您通常希望在您的网站上重复使用相同的样式并想象当您想要再次更改样式时(在实际应用程序中发生了很多),您必须直接编辑代码可能会引入一些不需要的错误,因此请避免这只是将您的设计与代码分开

  • 您可以在CSS文件中声明样式,然后将其导入您的页面:

    使用CSS

       .txtWithRedBorder
      {
    border-style: solid;
    border-color: #FF0000;
    

    }

    在你的控制中

      <asp:TextBox runat="server" Rows="5" TextMode="MultiLine" CssClass="txtWithRedBorder" />
    

    请记住将CSS文件放在Theme文件夹下,并将以下指令添加到页面中,以便将所有CSS文件自动导入页面

       <%@ Page Theme="Theme1"....
    
  • 或者您可以创建一个ASP.Net主题来实现相同的效果:

    <%@ Page Theme="Theme1"....
    
    <asp:TextBox runat="server" Rows="5" SkinID="someSkinID" TextMode="MultiLine" />
    

    在你的皮肤文件中:

    <asp:TextBox runat="server" BorderColor="Red" BorderStyle="Solid" SkinID="someSkinID" />
    

    请记住,您需要指定主题:

    enter image description here

    这是结果

    enter image description here