Интересно, что ни один из ответов на этой странице не упоминает два крайних случая, надеюсь, никто не возражает, если я их добавлю:
Родовые словари в .NET не являются потокобезопасными, а иногда могут бросать NullReference
или даже (чаще) a KeyNotFoundException
при попытке получить доступ к ключу из двух параллельных потоков. Исключение в этом случае является довольно ошибочным.
Если код NullReferenceException
задан кодом unsafe
, вы можете посмотреть на переменные указателя , и проверьте их на IntPtr.Zero
или что-то в этом роде. Это одно и то же («исключение нулевого указателя»), но в небезопасном коде переменные часто переводятся в типы значений / массивы и т. Д., И вы ударяете головой о стену, задаваясь вопросом, как тип значения может исключение.
(Еще одна причина для небезопасного использования небезопасного кода, если вам это нужно)
Вам придется изменить шрифт на моноширинный шрифт, например Courier. Такое поведение, которое вы показываете, является стандартным для большинства шрифтов, поскольку не все символы имеют одинаковую ширину.
richTextBox1.SelectAll();
richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
richTextBox1.DeselectAll();
Вы хотите использовать свойство RichTextBox.SelectionAlignment .
Например, если вы хотите, чтобы весь текстовый блок был центрирован, вы бы сделали:
richTextBox1.SelectAll();
richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
Если вы хотите только часть текстового поля с определенным выравниванием, используйте функцию RichTextBox.Select () для выбора текста, затем установите свойство SelectionAlignment.
Если вам не очень нужно использовать богатое текстовое поле, вы можете просто использовать текстовое поле и выбрать выравнивание как
textbox.TextAlign = HorizontalAlignment.Center;/*could be left, right or center*/