Click to See Complete Forum and Search --> : multiLine textBox
Snorlaks
October 30th, 2008, 02:17 PM
Hello,
is it possible to controll content of textEdit controll input, I mean I want user to be able only to type in 10 digit long numbers and then new line
make it possible only to accept such text, for example:
1111111111
1212121212
1234567890
and not accept:
11 11 11 11 11
1234567890123
12as34sd21
I hope that im clear.
thank for any hint
User should be also able to type in
1111111111
then change controll and afet commin back make it like
1111111111
1234567890
for example ofcourse.
HanneSThEGreaT
October 31st, 2008, 02:16 AM
Just an idea that might help...
You could perhaps split the contents of the textbox at each newline ( ie. Enter ), then check each split element's character length, and based on that, accept or not.
Just a couple of String Manipulations functions
foamy
October 31st, 2008, 03:15 AM
I couldn't resist playing around with this. I know it might be homework, but here goes:
bool go = true;
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text.Length > 10 && go)
{
string oldtext = textBox1.Text;
string newtext = "";
string leftover = "";
string[] split = oldtext.Split(Environment.NewLine.ToCharArray());
foreach (string substring in split)
{
string temp = leftover + substring;
if (temp.Length > 10)
{
newtext += temp.Substring(0, 10) + Environment.NewLine;
leftover = temp.Substring(10);
}
else if (temp.Length == 10)
newtext += temp + Environment.NewLine;
else
newtext += temp;
}
newtext += leftover;
if (newtext != "")
{
go = false;
textBox1.Clear();
textBox1.AppendText(newtext);
go = true;
}
}
}
If someone has a more elegant solution, I'd like to know it :)
BigEd781
November 1st, 2008, 02:41 AM
void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
int c = 0;
try {
c = textBox1.Lines[textBox1.GetLineFromCharIndex(textBox1.SelectionStart)].Length;
}
catch { }
string reg = c < 10 ? "[0-9]|\r|\n|\b" : "\r|\n|\b";
Regex regex = new Regex(reg);
e.Handled = !(regex.IsMatch(e.KeyChar.ToString()));
}
I am not very good with regular expressions, so someone who is could probably make this more concise.
codeguru.com
Copyright Internet.com Inc., All Rights Reserved.