c#文本框只读属性怎么设置

来源:我的博客作者:乙爱丽丝头衔:网络博主
导读:本期聚焦于小伙伴创作的《c#文本框只读属性怎么设置》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《c#文本框只读属性怎么设置》有用,将其分享出去将是对创作者最好的鼓励。

在C#的桌面应用开发中,文本框是常用的用户输入控件,很多时候我们需要让文本框显示内容但禁止用户编辑,这时候就需要设置文本框的只读属性。不同的UI框架中文本框的只读设置方式存在区别,同时还有不同的属性可以实现类似的效果,需要开发者根据场景选择。

c#文本框只读属性怎么设置

WinForms中TextBox只读属性设置

WinForms的TextBox控件提供了ReadOnly属性来设置只读状态,同时也可以通过Enabled属性实现类似效果,两者存在明显区别。

使用ReadOnly属性设置

ReadOnly属性设置为true后,文本框中的内容可以被选中、复制,但是用户无法通过键盘输入或修改内容,背景色默认保持白色,和正常文本框的视觉差异较小。

可以在窗体设计器中直接设置,也可以在代码中动态修改,以下是代码设置的示例:

// 设置文本框为只读状态
textBox1.ReadOnly = true;
// 设置文本框为可编辑状态
textBox1.ReadOnly = false;
// 判断文本框是否为只读
bool isReadOnly = textBox1.ReadOnly;

使用Enabled属性设置

Enabled属性设置为false后,文本框会变为灰色不可用状态,用户无法选中内容也无法修改,和ReadOnly属性的表现不同。

// 设置文本框不可用
textBox1.Enabled = false;
// 设置文本框可用
textBox1.Enabled = true;

两种属性的区别对比

属性内容可修改内容可选中复制背景色响应事件
ReadOnly=true白色响应鼠标点击、选中事件
Enabled=false灰色不响应任何鼠标键盘事件

WPF中TextBox只读属性设置

WPF的TextBox控件同样有IsReadOnly属性,作用和WinForms的ReadOnly属性一致,同时也有IsEnabled属性对应WinForms的Enabled属性。

使用IsReadOnly属性设置

在XAML中可以直接设置属性,也可以在后台代码中修改,以下是两种方式的示例:

XAML中设置:

<TextBox x:Name="txtDemo" IsReadOnly="True" Text="只读文本内容"/>

后台代码设置:

// 设置只读
txtDemo.IsReadOnly = true;
// 取消只读
txtDemo.IsReadOnly = false;

使用IsEnabled属性设置

设置为false后文本框变为不可用状态,内容和交互都被禁用:

// 设置不可用
txtDemo.IsEnabled = false;
// 设置可用
txtDemo.IsEnabled = true;

设置只读属性的注意事项

  • 如果只需要禁止用户编辑,但是需要支持内容选中和复制,优先选择ReadOnly(WinForms)或IsReadOnly(WPF)属性。
  • 如果需要完全禁用文本框的所有交互,让文本框显示为不可用状态,选择Enabled(WinForms)或IsEnabled(WPF)属性。
  • 只读状态下,后台代码仍然可以正常修改文本框的Text属性,不会因为只读限制后台赋值。
  • 如果文本框绑定了数据源,只读属性不会影响数据源的更新,仅限制用户的界面输入操作。

动态切换只读状态示例

以下是一个WinForms中根据复选框状态动态切换文本框只读状态的完整示例:

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    // 复选框选中时设置文本框为只读,取消选中时取消只读
    if (checkBox1.Checked)
    {
        textBox1.ReadOnly = true;
        textBox1.Text = "当前文本框为只读状态,无法编辑";
    }
    else
    {
        textBox1.ReadOnly = false;
        textBox1.Text = "当前文本框可编辑";
    }
}

C#TextBoxReadOnlyEnabled修改时间:2026-06-11 06:42:19

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。