c#: By default text box accepts n number of entries,
I want to restrict the entries to its width
Is there any property in text box through which i can achive this,
c#: By default text box accepts n number of entries,
I want to restrict the entries to its width
Is there any property in text box through which i can achive this,
You could compute the width of the text to be drawn and if it exceeds the textbox width then return.
HERE you can find a great example.
default it accepts only 32767
of chars.
You can set the MaxLength
property of the textbox in the textbox property
Hope you are using windows forms
Assuming WinForms, try this:
private bool textExceedsWidth;
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
textExceedsWidth = false;
if (e.KeyCode == Keys.Back)
return;
Size textSize = TextRenderer.MeasureText(textBox1.Text, textBox1.Font);
if (textBox1.Width < textSize.Width)
textExceedsWith = true;
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (textExceedsWidth)
e.Handled = true;
}
No, to do this you will have to calculate the maximium number of characters they can enter by the text box width manually I'm afraid. You'll also have to take into consideration the font and font size too
I know this question is a bit old but to any one looking this is an expansion of George answer. It works with Ctrl + v, context menu paste and typing from key board.
private string oldText;
private void txtDescrip_KeyPress(object sender, KeyPressEventArgs e)
{
oldText = txtDescrip.Text;
}
private void txtDescrip_TextChanged(object sender, EventArgs e)
{
Size textSize = TextRenderer.MeasureText(txtDescrip.Text, txtDescrip.Font);
if (textSize.Width > txtDescrip.Width)//better spacing txtDescrip.Width - 4
txtDescrip.Text = oldText;
else
oldText = txtDescrip.Text;
}