如果我的TextBox_Valid中有这些行,则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));
}
}
答案 0 :(得分:0)
好,我找到了解决方法。
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手动将焦点设置到下一个控件。所以我的制表符正在工作。