Если у вас есть длинные списки поддиапазонов для извлечения или вы хотите красивый синтаксис, вы можете определить функцию для получения нескольких поддиапазонов из массива:
from itertools import chain
def extract(array,ranges):
return list(chain( * (array[s:e] for s,e in ranges.items()) ))
array = list(range(100,200))
subArray = extract(array,{ 0:1, 12:15, 35:39 })
print(subArray) # [100, 112, 113, 114, 135, 136, 137, 138]
Посмотрите этот пост в блоге из нескольких месяцев назад, где я прикрепляю «глобальный» обработчик событий к TextBox.GotFocus
, чтобы выбрать текст.
По сути, вы можете обрабатывать событие KeyUp
в вашем классе приложений, например:
protected override void OnStartup(StartupEventArgs e)
{
EventManager.RegisterClassHandler(typeof(TextBox),
TextBox.KeyUpEvent,
new System.Windows.Input.KeyEventHandler(TextBox_KeyUp));
base.OnStartup(e);
}
private void TextBox_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key != System.Windows.Input.Key.Enter) return;
// your event handler here
e.Handled = true;
MessageBox.Show("Enter pressed");
}
... и теперь каждый TextBox
в вашем приложении будет вызывать TextBox_KeyUp
метод, когда пользователи вводят их.
Обновление
Как вы указали в своем комментарии, это полезно, только если каждый TextBox
должен выполнять один и тот же код.
Чтобы добавить произвольное событие, такое как нажатие клавиши Enter, вам лучше изучить Attached Events . Я верю, что это может дать вам то, что вы хотите.