将输入的大小限制为c#中TextBox的大小

本文关键字:TextBox 输入 | 更新日期: 2023-09-27 18:15:18

我看到过很多关于缩放TextBox到文本大小的问题,但这里只发现了一个与之相反的问题。这个问题也是2010年的问题,我相信从那以后语言已经发展了,可能会有更好的解决方案。

我要澄清的是,并不是希望将输入限制为任意数量的字符,因为输入可能包括换行符/垂直空格。(如果它包含大量的垂直空间,可能会使文本超出边界。)

情况如下:

  • 表单1有一个文本框。我希望这个文本框保持固定的大小。任何超出大小的数据都应该从输入中切断。
  • 我想保存表单1的文本框的内容到一个文件。
  • 在Form 2中,我想打开文件并拉Form 1的文本框的内容。这些将被保存在Form 2本地的单独文本框中。

我现在的策略是找到一种方法来限制输入到文本框的尺寸,这样表单1和表单2中的文本框是等效的,并且不会溢出它们各自的尺寸。

所以我的问题是:我该怎么做呢?


编辑:对不起,看来我的问题没有提供足够的信息。我也把情况打错了,所以我在下面重新写一遍。

我将退后一步,描述更多我正在尝试做的事情。

让我们假设我有一个单一的表单,有以下两个对象:

  • 文本框
  • 标签

我在文本框中输入的任何东西我都想在标签的文本上看到。可以输入任意字母、数字或特殊字符,包括空格、换行符。

为了一致的大小,我希望标签具有固定的图形大小;无论标签文本中有多少个字符,标签对象都不应大于(x, y),其中x和y是任意的高度和宽度大小。

我不希望文本框中的数据不能满足标签大小的界限。应该防止用户在文本框中输入超出标签大小限制的数据。

是否有任何策略没有提到在链接的问题,可以确定文本框的文本是否满足或延伸超过任意宽度和高度?

将输入的大小限制为c#中TextBox的大小

文本框的属性给你一个最大长度,你也可以在代码中这样做

var tb = new TextBox();
tb.MaxLength = 10
如果你不想用

那么你应该用

var str = tb.Text.Remove(0, 10) 

将只给STR变量前10个字符,而不管文本框中实际内容的长度。

对于表格二,你需要给我更多关于你想要什么的信息。


在OP的编辑后编辑

如果你想让文本框中的文本在标签级别进行匹配你需要在文本框的属性中添加TextChanged Event然后像这样

private void TextChanged(object sender, EventArgs e)
{
    label1.Text = textBox1.Text;
}

将标签设置为固定大小并不会有什么好处,我已经这样做了,但这也引出了一个问题,为什么要将文本框信息复制到标签中。为什么不直接放在文本框