C#Texbox&x27;s';最大长度';属性-错误(Winform)
这可能有一些解决办法,但是,我不确定目前是什么。设置文本框的MaxLength属性后,我无法手动超过C#Texbox&x27;s';最大长度';属性-错误(Winform),c#,winforms,loops,textbox,C#,Winforms,Loops,Textbox,这可能有一些解决办法,但是,我不确定目前是什么。设置文本框的MaxLength属性后,我无法手动超过文本框的MaxLength。另一方面,如果我要创建一个循环,通过编程将字符添加到文本框中,那么这个循环可能会超过maxLength属性 textBox1.MaxLength = 5; // I am now unable to manually type in more than 5 chars. for (int i = 0; i < 20; i++) {
文本框的MaxLength
。另一方面,如果我要创建一个循环,通过编程将字符添加到文本框中,那么这个循环可能会超过maxLength属性
textBox1.MaxLength = 5; // I am now unable to manually type in more than 5 chars.
for (int i = 0; i < 20; i++)
{
textBox1.AppendText("D");
}
// Textbox now holds 20 chars.
textBox1.MaxLength=5;//我现在无法手动键入超过5个字符。
对于(int i=0;i<20;i++)
{
文本框1.附录文本(“D”);
}
//文本框现在可以容纳20个字符。
在不必编写更多代码来获取部分数据的情况下,是否有方法确保不超过maxlength属性
问候,,
埃文怎么样:
textBox1.MaxLength = 5;
for (int i = 0; i < 20 && i < textBox1.MaxLength; i++)
{
textBox1.AppendText("D");
}
textBox1.MaxLength=5;
对于(int i=0;i<20&&i
不确定这是否算作“更多的代码行”,但这是一个非常简单的额外检查。如何:
textBox1.MaxLength = 5;
for (int i = 0; i < 20 && i < textBox1.MaxLength; i++)
{
textBox1.AppendText("D");
}
textBox1.MaxLength = 5;
while(textBox1.Text.Length <= textBox1.MaxLength)
textBox1.AppendText ("D");
textBox1.MaxLength=5;
对于(int i=0;i<20&&i
不确定这是否算作“更多的代码行”,但这是一个非常简单的额外检查。textBox1.MaxLength=5;
textBox1.MaxLength = 5;
while(textBox1.Text.Length <= textBox1.MaxLength)
textBox1.AppendText ("D");
而(textBox1.Text.LengthtextBox1.MaxLength=5;
while(textBox1.Text.LengthMaxLength:获取或设置用户可以键入或粘贴到文本框控件中的最大字符数。(表单)并获取或设置文本框中允许的最大字符数。(web)
换句话说,这就是MaxLength的要点——它完全是关于控制用户输入的。因为您首先拥有文本框,所以不需要设置自己的硬编程限制
因此,简言之,否-如果不重写其他一些功能(例如OnChanged),或者添加Ben和Sres所示的条件测试,则无法更改此行为。MaxLength:获取或设置用户可以键入或粘贴到文本框控件中的最大字符数。(表单)并获取或设置文本框中允许的最大字符数。(web)
换句话说,这就是MaxLength的要点——它完全是关于控制用户输入的。因为您首先拥有文本框,所以不需要设置自己的硬编程限制
因此,简言之,否-如果不覆盖其他一些功能(例如OnChanged),或者添加Ben和Sres所示的条件测试,则无法更改此行为。来自MSDN:
在代码中,可以设置
将Text属性设置为具有
长度大于该值
由MaxLength属性指定。
此属性仅影响文本
在运行时输入控件
如果要防止文本
长度超过最大长度
,则需要一些额外的代码。来自MSDN:
在代码中,可以设置
将Text属性设置为具有
长度大于该值
由MaxLength属性指定。
此属性仅影响文本
在运行时输入控件
如果要防止文本
超过最大长度
,则需要一些额外的代码。据我所知,设置文本框的最大宽度仅对通过UI输入值的最终用户实施此限制。据我所知,此限制不适用于代码设置文本框的最大宽度文本框仅对通过UI输入值的最终用户实施此限制。此限制不适用于代码。当您不希望用户能够输入超过分配数量的值时,将使用MaxLength。但是,在编程上,它可以被覆盖。追加文本就是这样做的:
public void AppendText(string text)
{
if (text.Length > 0)
{
int start;
int length;
this.GetSelectionStartAndLength(out start, out length);
try
{
int endPosition = this.GetEndPosition();
this.SelectInternal(endPosition, endPosition, endPosition);
this.SelectedText = text;
}
finally
{
if (base.Width == 0 || base.Height == 0)
{
this.Select(start, length);
}
}
}
}
当您不希望用户输入的数量超过分配的数量时,使用MaxLength。但是,在编程上,它可以被覆盖。这就是追加文本的作用:
public void AppendText(string text)
{
if (text.Length > 0)
{
int start;
int length;
this.GetSelectionStartAndLength(out start, out length);
try
{
int endPosition = this.GetEndPosition();
this.SelectInternal(endPosition, endPosition, endPosition);
this.SelectedText = text;
}
finally
{
if (base.Width == 0 || base.Height == 0)
{
this.Select(start, length);
}
}
}
}
MaxLength
属性禁止用户键入超过n个
字符。但是当您通过编程设置Text
属性时,您的文本框将显示其Text
属性的值,即使其长度超过MaxLength
因此,您必须检查循环是否超过maxlength。maxlength
属性禁止用户键入超过n
个字符。但是,当您通过编程设置Text
属性时,即使其长度超过maxlength值,您的文本框也会显示其Text
属性的值e>
因此,您必须检查循环是否超过maxlength。您可以编写一个扩展方法,并使用它来附加文本,而不是.AppendText()
void Main()
{
var t=新文本框();
t、 最大长度=5;
t、 Text=“123”;
t、 附录:最大长度(“456789”);
t、 Text.Dump();//打印12345
}
公共静态类扩展方法
{
public static void AppendTextRespectMaxLength(此文本框,字符串newText)
{
如果(textbox.Text.Length+newText.Length您可以编写一个扩展方法,并使用它来附加文本,而不是.AppendText()
void Main()
{
var t=新文本框();
t、 最大长度=5;
t、 Text=“123”;
t、 附录:最大长度(“456789”);
t、 Text.Dump();//打印12345
}
公共静态类扩展方法
{
public static void AppendTextRespectMaxLength(此文本框,字符串newText)
{
如果(textbox.Text.Length+newText.Length)在问题中添加相应的标记,我不明白你为什么会创建这样的场景?我有点困惑。人们通过MaxLength
属性的唯一方法是获取源代码。除此之外,我看不到你提出的问题。我只是有很多问题