Да, интерпретируемые языки работают медленно ...
Однако учтите следующее. У меня была проблема, чтобы решить. Мне потребовалось 4 минуты, чтобы решить проблему в Python, а запуск программы занял 0,15 секунды. Затем я попытался написать это на C, и у меня было время выполнения 0,12 секунды, и мне потребовался 1 час, чтобы написать это. Все это потому, что практическим способом решения рассматриваемой проблемы было использование хеш-таблиц, и хеш-таблица все равно доминировала во время выполнения.
Вырезать, Копировать и Вставить являются общими командами, используемыми в любом приложении,
<TextBox CommandManager.PreviewExecuted="textBox_PreviewExecuted"
ContextMenu="{x:Null}" />
в приведенном выше коде текстового поля мы можем ограничить эти команды в событии PrviewExecuted класса CommandManager
и в коде позади добавления ниже код и ваша работа сделана
private void textBox_PreviewExecuted(object sender, ExecutedRoutedEventArgs e)
{
if (e.Command == ApplicationCommands.Copy ||
e.Command == ApplicationCommands.Cut ||
e.Command == ApplicationCommands.Paste)
{
e.Handled = true;
}
}
Метод commandName не будет работать в системе с японской ОС, так как сравнение commandName == "Paste" завершится ошибкой. Я попробовал следующий подход, и у меня он сработал. Также мне не нужно отключать контекстное меню вручную.
В файле XaML:
<PasswordBox.CommandBindings>
<CommandBinding Command="ApplicationCommands.Paste"
CanExecute="CommandBinding_CanExecutePaste"></CommandBinding>
</PasswordBox.CommandBindings>
В коде позади:
private void CommandBinding_CanExecutePaste(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = false;
e.Handled = true;
}