2016-10-28 78 views
-6

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

我澄清,我这样做想我的输入限制字符的任意号码,输入可能包括换行/垂直空间。 (其中,如果它包含了大量的垂直空间,可以舒展文本登天。)

这里的情况:

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

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

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


编辑:对不起,看来我的问题并没有提供足够的信息。我也错误地输入了情况,所以我会在下面重新编写它。

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

假设我有一个单一的形式,有以下两个对象:

  • 文本框
  • 标签

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

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

我不希望文本框中的数据不能放在标签大小的范围内。应该阻止用户将数据输入到超出标签大小范围的文本框中。

链接问题中是否有任何策略可以确定文本框的文本是否满足或超过任意宽度和高度?

+1

我认为除了测量文本以适应文本框外,还有另外一种方法实现这一点。但不好,可靠。也许是更好地“手动”限制字符maxlength到你想要的。 – Pikoh

+0

你有没有看到你说的你从2010年看的答案中的答案二。我不会怀疑语言已经改变了足以做出任何更好的方式这要比A1或2做得更好。如果我们知道你为什么要做这样一个奇怪的功能,它可能会有所帮助;我认为它的形式将是静态的,或者还取决于显示器的大小?也许有更好的方法来解决这个问题呢? –

+0

我将我的问题更新为更简单的格式。目前忽略文件操作和第二种形式,只是检查大小的根本问题。 – Sven

回答

0

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

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

,如果你不想使用,那么你应该使用

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

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

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


OP的编辑后,编辑

如果你想在文本框中的文本在您要添加TextChanged事件的TextBox的属性,然后有这样的事情

标签水平相匹配
private void TextChanged(object sender, EventArgs e) 
{ 
    label1.Text = textBox1.Text; 
} 

无论什么东西都不会很好,但是这样做也会引起问题,为什么要将文本框信息复制到标签中?为什么不把它放在文本框中

+0

@Sven ive刚刚看到您的更新,在短时间内向您发送一些代码 –

+0

@Sven ive更新了我的答案,但您要求的一些不是良好的做法 –

+0

感谢您的回复。我感谢你的回答,即使它归结为复杂和不好的做法。我不知道这个问题是否有一个很好的解决方案,我会尝试重构,以防止出现这种情况。 – Sven