【问题标题】:WinForm Text Control that displays current character/character limit显示当前字符/字符限制的 WinForm 文本控件
【发布时间】:2010-06-14 18:15:55
【问题描述】:

我需要一种方法来显示Text Control(即的当前字符/字符限制,就像您在某些网络应用程序中看到的那样em> 3/500)。我通常将其视为位于Text Control 正上方或下方的label

这“通常”是如何完成的?我应该以某种方式覆盖我的Text Control 吗?我是否只是手动将每个Text Control 和“bind”标签添加到Text Control 的属性中?我是否需要创建一个包含 Text ControlLabel Controls 的复合控件来完成我需要的操作?

任何方向或帮助将不胜感激。

【问题讨论】:

    标签: c# .net winforms textbox label


    【解决方案1】:

    将处理程序附加到TextBox.TextChanged 并根据TextBox.Text.Length 和您希望允许的最大大小刷新标签。您还可以通过调用 TextBox.Text = TextBox.Text.Substring( 0, maxChars ); 在同一处理程序中强制执行限制。

    【讨论】:

    • 只是为了澄清一下,这样我将为每个文本控件创建一个标签并为每个文本控件创建一个事件处理程序?我只是想确保我理解正确。谢谢
    • 但是,只有在 Length 大于 maxChars 时才执行最后一部分,否则会出现异常。
    • 如果你愿意,你可以把它打包成一个可重复使用的UserControl,这样你只需要编写一次功能。
    • @Refracted - 您可以将 TextBox 和 Label 包装在 UserControl 中。
    【解决方案2】:
    int maxChars = 100;
    
    Textbox onKeyUp:
    remainingChars.Text = Convert.ToString(maxChars - textbox.Text.Length);
    

    把它粘在一个函数里:

    getRemainingChars(TextBox tb, Label lbl, int max)
    {
    lbl.Text = Convert.ToString(max - tb.Text.Length) + "/" + Convert.ToString(max);
    }
    

    希望对你有所帮助

    【讨论】:

    • 我不确定我是否理解您的建议。 remainingCharsLabel 吗?如果是这样,不应该是(maxChars - textbox.text.Length)。
    • 啊,我评论的时候功能部分不存在。所以你会建议通过每个文本控件手动添加标签,然后使用这个功能?听起来可行,谢谢。
    • 是的,对不起,我弄错了。是的,我认为这就是我会做的。 :o) 哦,是的,剩余字符是一个标签
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多