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

时间:2016-10-28 07:49:27

标签: c# winforms

我已经看到了很多关于将TextBox缩放到文本大小的问题,但只发现了一个关于反向here的问题。这个问题也是从2010年开始的,我相信自那时起语言已经发展,可能会有更好的解决方案。

我会澄清我想要将输入限制为任意数量的字符,因为输入可能包含换行符/垂直空间。 (如果它包含很多垂直空间,可以将文本拉伸到界限之外。)

以下是这种情况:

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

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

所以我的问题是:我该如何去做?

编辑:抱歉,我的问题似乎没有提供足够的信息。我也错误地输入了这种情况,所以我将在下面重写它。

我会退后一步,详细描述我想要做的事情。

假设我有一个表单,其中包含以下两个对象:

  • 文本框
  • 标签

我想在标签文本中看到的文字框中输入的任何内容。输入可以是任何字母,数字或特殊字符,包括空格和换行符。

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

我不希望文本框中的数据不符合标签大小的范围。应防止用户将数据输入到文本框中,该数据将超出标签的大小范围。

链接问题中没有提及的任何策略可以确定文本框的文本是否符合或延伸超过任意宽度和高度?

1 个答案:

答案 0 :(得分:0)

文本框的属性为您提供了最大长度,您也可以在代码中执行此操作

var tb = new TextBox();
tb.MaxLength = 10

如果您不想使用它,那么您应该使用

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

这将只给str变量前10个字符,无论文本框中实际的长度是多少。

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

OP编辑后

编辑

如果您希望文本框中的文本在标签级别匹配,您需要将TextChanged事件添加到文本框的属性,然后具有类似的内容

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

将标签设置为固定大小,无论什么都不好,我已经完成了,但这也引出了一个问题,为什么要将文本框信息复制到标签中。为什么不把它放在文本框中