如果我的TextBox中有这些行,验证TextBox上的tabstop将触发两次:
((TextBox)sender).AutoCompleteCustomSource.AddRange(new string[]
{
((TextBox)sender).Text,
});
但是,如果移除Tabstop上方的线条效果良好,并且只发射一次?
这就是整个功能:
private void TextBox_Validating(object sender, EventArgs e)
{
if (!((TextBox)sender).AutoCompleteCustomSource.Contains(((TextBox)sender).Text) && ((TextBox)sender).TextLength > 0)
{
((TextBox)sender).AutoCompleteCustomSource.AddRange(new string[]
{
((TextBox)sender).Text,
});
SaveHistoryTextBox(((TextBox)sender));
}
}
好的,我找到了一个解决方法。。
private void TextBox_Validating(object sender, EventArgs e)
{
if (!((TextBox)sender).AutoCompleteCustomSource.Contains(((TextBox)sender).Text) && ((TextBox)sender).TextLength > 0)
{
((TextBox)sender).AutoCompleteCustomSource.AddRange(new string[]
{
((TextBox)sender).Text,
});
SaveHistoryTextBox(((TextBox)sender));
Control p;
p = ((TextBox)sender).Parent;
p.SelectNextControl(ActiveControl, true, true, true, true);
}
}
使用p.SelectNextControl,我手动将焦点设置为下一个控件。所以我的tabstop正在工作。