在 c# winforms 中扩展文本框
Posted
技术标签:
【中文标题】在 c# winforms 中扩展文本框【英文标题】:Extend text box in c# winforms 【发布时间】:2021-11-22 12:12:57 【问题描述】:我一直在寻找这个问题的答案(我在c#中使用winforms)。
我正在寻找图片中的控件,单击时带有向下箭头的文本框打开了扩展文本框,我不想使文本框变大,我认为它可能是组合框的属性,但我找不到。
有人熟悉这个控件吗? 谢谢 ! https://i.stack.imgur.com/7Uvvo.png
【问题讨论】:
这本质上是设计者展示的TextBox
控件(我认为它在技术上是字符串集合编辑器控件)。未打开的较小元素通常是只读的,这会使用户在正常情况下感到困惑
好的,你知道不同的解决方案吗?一种让用户选择获得更大编辑空间但原始文本框不会变大的选项?或者只是让文本框变大就可以了
写一个自定义控件。
通常像您展示的那样的控件是较大的 PropertyGrid 控件的一部分,并且不作为独立的“下拉加文本框”表单存在。 PropertyGrid 通常有一个默认视图,然后是一个编辑器。当属性的值获得焦点时显示编辑器。
【参考方案1】:
没有直接控制,可以做到这一点,但这里有一个解决方案:
1:您创建一个组合框,向其中添加“DropDown”和“DropDownClosed”事件,并将 DropDownHeight 设置为 1
2:您在其下方创建一个文本框,启用 Multiline 并将其可见性设置为 false。
3:在你的 Form.cs 添加这个函数:
private void comboBox1_DropDown(object sender, EventArgs e)
textBox1.Visible = true;
textBox1.Focus();
private void comboBox1_DropDownClosed(object sender, EventArgs e)
textBox1.Visible = false;
4:如果可行,您可以为其创建一个用户控件。
【讨论】:
以上是关于在 c# winforms 中扩展文本框的主要内容,如果未能解决你的问题,请参考以下文章
在C# winform中怎么设置文本框中部分字体的颜色,即根据条件在编程中改变文本框中部分字体的颜色