Пароли хешируются к 32, 40, 128, безотносительно длины. Единственная причина минимальной длины состоит в том, чтобы предотвратить легкий предположить пароли. Нет никакой цели для максимальной длины.
обязательное XKCD, объясняющий, почему Вы вредите своему пользователю при наложении макс. длины:
Метод SendKeys.Send ().
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
listBox1.Focus();
SendKeys.Send(e.KeyChar.ToString());
}
Вот код, с помощью которого вы можете выбрать элемент списка.
private void Form1_Load(object sender, EventArgs e)
{
textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
textBox1.AutoCompleteSource=AutoCompleteSource.CustomSource;
string[] ar = (string[])(listBox1.Items.Cast<string>()).ToArray<string>();
textBox1.AutoCompleteCustomSource.AddRange(ar);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
listBox1.Text = textBox1.Text;
}
Вы можете использовать привязку данных
listBox1.DataBindings.Add("DataSource", textBox1, "Text", true, DataSourceUpdateMode.OnPropertyChanged).
Format += (sender, e) =>
{
e.Value = _strings.FindAll(s => s.StartsWith((string) e.Value));
};
В нашем приложении wpf у нас есть текстовое поле, которое фильтрует список, мы используем событие previewkeyup. Внутри кода мы можем проверить, какая клавиша была нажата (не держите мой код передо мной, это что-то вроде e.Key == Key.UpArrow, в любом случае для этого есть встроенный класс в C #). Если это одна из горячих клавиш, мы соответствующим образом манипулируем пользовательским элементом управления.
Для списка мы поместили его в пользовательский элемент управления и реализовали интерфейс,