visual C# winForm中如何设置textbox只显示一条下划线,并且背景透明?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了visual C# winForm中如何设置textbox只显示一条下划线,并且背景透明?相关的知识,希望对你有一定的参考价值。
visual C# winForm中如何设置textbox只显示一条下划线,并且背景透明?
比如这样显示: ____________
怎么样才能实现呢?
请各位大侠指教一下 !!谢谢!!
拖放一个textbox,设置其BorderStyle属性为None。
再拖一个label控件,Text属性设置为“______”,对准位置在textbox控件的下侧···
预计运行效果可实现楼主所想。追问
网上查到的是重绘TEXTBOX,但是都查不到具体方法.
追答那个方法要应该比较复杂了,要调用graphics类的相关方法了。
如果这个方法可行,楼主可尝试着把这对组合好的textbox和label做成自定义控件,方便重复使用。
你说的textbox设置其BorderStyle属性为None,
虽然没有边框了,但是不是透明的啊!!
自定义控件的话要怎么弄呢?
这个方法很“猥琐”,稍微变通一下,改动TextBox的BackColor就好。
我试过了,比如窗口的BackColor为Contorl,那么设置TextBox的BorderStyle为None、BackColor为Control,然后再拖一个Label控件,Text属性设置为“______”,对准位置在Textbox控件的下侧···这样是可以达到你说的要求的。
至于自定义控件,如果按照上述方法的话,可复用性就没有意义了,因为TextBox的BackColor的缘故,只要设置了一个颜色,换一个背景的窗体下使用该自定义控件则效果就不佳···所以,楼主还是斟酌一下。
至于自定义控件的用法,右击项目文件夹,找到“添加”,选择“新建项”,在选项中选中“自定义控件”,取个名字,确定。然后在该页面中把刚才的TextBox和Label自行拖放。
如果窗口有背景图片呢...
追答那没办法了,因为TextBox控件的背景颜色是没法设置透明的···
建议你找找第三方控件吧。
不行的.
错误 1 “System.Windows.Forms.TextBox”不包含采用“4”个参数的构造函数 C:\workspace\C#\mytextbox\mytextbox\Form1.Designer.cs 31 29 mytextbox
如何在winform c#中禁用按钮时将焦点设置在按钮上?
【中文标题】如何在winform c#中禁用按钮时将焦点设置在按钮上?【英文标题】:How to set focus on button while button is disabled in winform c#? 【发布时间】:2021-05-21 20:36:02 【问题描述】:我想在 Windows 窗体应用程序中禁用按钮时在按钮中设置焦点。
有没有办法实现这个目标?
背景:
我正在制作一个可供盲人使用的应用程序,因此当按钮启用时,屏幕阅读器将读取按钮内容,但当按钮被禁用时,屏幕阅读器将无法读取按钮内容无法专注于禁用模式
【问题讨论】:
禁用控件的全部意义在于防止它获得焦点。这是基本特征。 "我想为可访问性创建一个类似只读的按钮" 我觉得这很令人困惑。你能详细说明一下吗? @VijayMandanka 你能尝试解绑和绑定点击事件而不是让它禁用吗,对你有帮助吗? @MongZhu 我正在制作一个可供盲人使用的应用程序,因此当启用按钮时,焦点屏幕阅读器将读取按钮内容,但当禁用按钮时则无法读取通过屏幕阅读器,因为按钮无法专注于禁用模式。 为什么不添加此附加信息:在您取消挂钩事件时将“禁用”添加到按钮的文本中。这样,读者甚至可以将这些信息提供给用户 【参考方案1】:您可以尝试通过下面的代码添加和删除点击事件,而不是在C#中启用和禁用按钮。
用于移除点击事件
button.Click -= button_Click;
用于添加点击事件
button.Click += button_Click;
供参考,您可以参考以下链接。
How to subscribe to and unsubscribe from events (C# Programming Guide)
【讨论】:
【参考方案2】:您可以创建自定义控件并在自定义控件中创建一个属性。使用该属性来检查 OnClick 是否需要触发。
例如:
public class buttonReadonly: Button
private bool _isReadOnly = false;
public bool isReadOnly
get
return _isReadOnly;
set
_isReadOnly = value;
protected override void OnClick(EventArgs e)
if (!isReadOnly)
base.OnClick(e);
【讨论】:
以上是关于visual C# winForm中如何设置textbox只显示一条下划线,并且背景透明?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Visual Studio C# Winform 中打开 Access 表单?
C# winform 中如何实现visual studio 中软件编辑界面的工具箱的隐藏出现效果?? 恳请高手回答
Visual Studio 2010 C#,winform,如何将dataGridview的数据导出到Excel表中?
在 Visual Studio 2012 中发布 C# winform 应用程序