【发布时间】:2014-11-08 23:46:41
【问题描述】:
我创建了一个只允许数字的自定义文本框,但是当我在我的页面上使用控件时,我无法增加它的宽度。我尝试将控件的 autosize 属性设置为 TRUE,但没有成功。
自定义文本框的代码如下所述
public partial class NumericalTextBox : UserControl
{
public NumericalTextBox()
{
InitializeComponent();
textBox1.KeyPress += NumericalTextBox_KeyPress;
}
private void NumericalTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if ((int)(e.KeyChar) == 22)
{
IDataObject clipData = Clipboard.GetDataObject();
string dataSet = (string)clipData.GetData(DataFormats.Text);
foreach (char data in dataSet)
{
if (!(char.IsNumber(data)) && !(char.IsControl(data)))
{
e.Handled = true;
return;
}
}
return;
}
else
{
if (((char.IsNumber(e.KeyChar))) || ((char.IsControl(e.KeyChar))))
{
return;
}
}
e.Handled = true;
}
}
有人可以帮助我如何启用文本框的大小调整。
【问题讨论】:
-
另外,如果我没记错的话,“键盘编号”和“键盘编号”之间可能存在差异
-
不能继承Textbox类,需要继承Usercontrol类。
-
您是否设置了包含的文本框的锚点以适应用户控件的大小变化?
-
从 TextBox 派生是正确的解决方案,不知道为什么您坚持不能这样做。如发布的那样,您必须添加一堆代码才能使其再次像文本框一样工作。像 OnResize() 一样调整大小。