 |
|
andrew_jr20 |
10-02-2013 00:45 2086730 |
textbox+autocomplete=error
Добрый день.
Вылезла ошибка с созданием/удалением свойства autocomplete для textbox - не могу победить.
Создал простую форму для воссоздания - работает и там. Вот код, которым можно воспроизвести ошибку (пустая форма с единственным textbox и обработчиком TextChanged):
Код:
private void txtClient_TextChanged(object sender, EventArgs e)
{
if (txtClient.TextLength == 0)
{
txtClient.AutoCompleteCustomSource.Clear();
txtClient.AutoCompleteMode = AutoCompleteMode.None;
txtClient.AutoCompleteSource = AutoCompleteSource.None;
}
else if (txtClient.TextLength == 1)
{
if (txtClient.AutoCompleteMode == AutoCompleteMode.None)
{
txtClient.AutoCompleteMode = AutoCompleteMode.Suggest;
txtClient.AutoCompleteSource = AutoCompleteSource.CustomSource;
txtClient.AutoCompleteCustomSource.Add("Иванов");
}
}
}
При вводе/удалении одного символа в поле (достаточно иногда и одного раза, но иногда может потребоваться и 4-5 попыток) вылетает ошибка "Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена." Воспроизводится на XP и 7, .net 2.0 и 3.5. Где косяк? Что делать и куда копать - ума не приложу :(
PS:
по большому счёту, вылетает даже на таком коде:
Код:
if (txtClient.TextLength == 0)
{
txtClient.AutoCompleteCustomSource.Clear();
}
else if (txtClient.TextLength == 1)
{
txtClient.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
}
|
Время: 10:57.
© OSzone.net 2001-