在 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 中扩展文本框的主要内容,如果未能解决你的问题,请参考以下文章

可扩展的 WinForms 文本框

C# winform 文本框里,怎么设置数字的格式?

在C# winform中怎么设置文本框中部分字体的颜色,即根据条件在编程中改变文本框中部分字体的颜色

是否可以在 C# winforms 中一次将文本写入多个文本框?

C# Winform 文本框数值

在 C# winforms 应用程序中使用文本框过滤 Treeview