TextBox.ReadOnly 属性

定义

获取或设置一个值,用于指示能否更改 TextBox 控件的内容。

public:
 virtual property bool ReadOnly { bool get(); void set(bool value); };
[System.ComponentModel.Bindable(true)]
public virtual bool ReadOnly { get; set; }
[System.ComponentModel.Bindable(true)]
[System.Web.UI.Themeable(false)]
public virtual bool ReadOnly { get; set; }
[<System.ComponentModel.Bindable(true)>]
member this.ReadOnly : bool with get, set
[<System.ComponentModel.Bindable(true)>]
[<System.Web.UI.Themeable(false)>]
member this.ReadOnly : bool with get, set
Public Overridable Property ReadOnly As Boolean

属性值

如果不能更改 TextBox 控件的内容,则为 true;否则为 false。 默认值是 false

属性

示例

下面的代码示例演示如何使用 ReadOnly 属性来防止对控件中显示的 TextBox 文本进行任何更改。

重要

此示例具有一个接受用户输入的文本框,这是一个潜在的安全威胁。 默认情况下,ASP.NET 网页验证用户输入是否不包含脚本或 HTML 元素。 有关详细信息,请参阅脚本侵入概述

<%@ Page Language="C#" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" > 

<head>
    <title> MultiLine TextBox Example </title>
<script runat="server">

      protected void SubmitButton_Click(Object sender, EventArgs e)
      {
         
         Message.Text = "Thank you for your comment: <br />" + Comment.Text;

      }

      protected void Check_Change(Object sender, EventArgs e)
      {
         
         Comment.Wrap = WrapCheckBox.Checked;
         Comment.ReadOnly = ReadOnlyCheckBox.Checked;

      }

   </script>

</head>

<body>

   <form id="form1" runat="server">

      <h3> MultiLine TextBox Example </h3>

      
      Please enter a comment and click the submit button. 

      <br /><br /> 
            
      <asp:TextBox ID="Comment"
           TextMode="MultiLine"
           Columns="50"
           Rows="5"
           runat="server"/>

      <br />

      <asp:RequiredFieldValidator
           ID="Value1RequiredValidator"
           ControlToValidate="Comment"
           ErrorMessage="Please enter a comment.<br />"
           Display="Dynamic"
           runat="server"/>                         

      <asp:CheckBox ID="WrapCheckBox"
           Text="Wrap Text"
           Checked="True"
           AutoPostBack="True"
           OnCheckedChanged="Check_Change"
           runat="server"/>

        

      <asp:CheckBox ID="ReadOnlyCheckBox"
           Text="ReadOnly"
           Checked="False"
           AutoPostBack="True"
           OnCheckedChanged="Check_Change"
           runat="server"/>

        

      <asp:Button ID="SubmitButton"
           Text="Submit"
           OnClick="SubmitButton_Click"
           runat="server"/>

      <hr />

      <asp:Label ID="Message"
           runat="server"/>

   </form>

</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" > 

<head>
    <title> MultiLine TextBox Example </title>
<script runat="server">

      Protected Sub SubmitButton_Click(sender As Object, e As EventArgs )
               
         Message.Text = "Thank you for your comment: <br />" + Comment.Text

      End Sub

      Protected Sub Check_Change(sender As Object, e As EventArgs )
         
         Comment.Wrap = WrapCheckBox.Checked
         Comment.ReadOnly = ReadOnlyCheckBox.Checked

      End Sub

   </script>

</head>

<body>

   <form id="form1" runat="server">

      <h3> MultiLine TextBox Example </h3>

      
      Please enter a comment and click the submit button. 

      <br /><br /> 
            
      <asp:TextBox ID="Comment"
           TextMode="MultiLine"
           Columns="50"
           Rows="5"
           runat="server"/>

      <br />

      <asp:RequiredFieldValidator
           ID="Value1RequiredValidator"
           ControlToValidate="Comment"
           ErrorMessage="Please enter a comment.<br />"
           Display="Dynamic"
           runat="server"/>                         

      <asp:CheckBox ID="WrapCheckBox"
           Text="Wrap Text"
           Checked="True"
           AutoPostBack="True"
           OnCheckedChanged="Check_Change"
           runat="server"/>

        

      <asp:CheckBox ID="ReadOnlyCheckBox"
           Text="ReadOnly"
           Checked="False"
           AutoPostBack="True"
           OnCheckedChanged="Check_Change"
           runat="server"/>

        

      <asp:Button ID="SubmitButton"
           Text="Submit"
           OnClick="SubmitButton_Click"
           runat="server"/>

      <hr />

      <asp:Label ID="Message"
           runat="server"/>

   </form>

</body>
</html>

注解

ReadOnly使用 属性指定是否可以更改控件的内容TextBox。 将此属性设置为 true 将阻止用户输入值或更改现有值。 请注意,控件的用户 TextBox 无法更改此属性;只有开发人员才能更改此属性。

重要

Text当发生回发时,属性设置为 true 的 控件ReadOnly的值TextBox将发送到服务器,但服务器不处理只读文本框。 这可以防止恶意用户更改 Text 只读值。 除非由服务器端代码修改, Text 否则 属性的值将保留在回发之间的视图状态中。

无法通过主题或样式表主题设置此属性。 有关详细信息,请参阅 ThemeableAttributeASP.NET 主题和外观

适用于

另请参阅