Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Rog-Vik
2 / 2 / 2
Регистрация: 06.11.2014
Сообщений: 36
1

Выделить текст в RichTextBox в одном окне, сохранив фокус на другом окне

22.08.2017, 21:20. Просмотров 222. Ответов 2
Метки нет (Все метки)

Добрый день!
Пытаюсь реализовать поиск с помощью дополнительного окна (в данной теме сам поиск не интересует). Если посмотреть аналог окна "Найти и заменить" в Word, то при клике на кнопке "Найти далее", фокус сохраняется на этом окне, а текст выделяется; также выделение не пропадает при простом переключении между окнами. Но я не могу выделить текст без передачи фокуса текстовому полю, а также выделение скрывается при переключении между окнами.
Как это можно реализовать? Вот простой проект. Хотелось бы, чтобы было как на 3-й картинке.
XML
1
2
3
4
5
6
7
8
9
10
11
12
Title="MainWindow" SizeToContent="WidthAndHeight" WindowStartupLocation = "CenterScreen">
    <StackPanel>
        <RichTextBox Name="RT" Margin="10,10,10,5" Width="250" Height="100">
            <FlowDocument Name="fl">
                <Paragraph TextIndent="10">
                    <Run Text="Hello, world!"/>
                </Paragraph>
            </FlowDocument>
        </RichTextBox>
        <Button Click="Ok_Click" Margin="10" Width="100" Height="30" Content="Ok">
        </Button>
    </StackPanel>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private void Ok_Click(object sender, RoutedEventArgs e)
        {
            Window win = new Window();
            win.Title = "Window2";
            win.ShowInTaskbar = false;
            win.Owner = this;
            win.WindowStartupLocation = WindowStartupLocation.CenterOwner;
            win.SizeToContent = SizeToContent.WidthAndHeight;
 
            Button btnSelect = new Button();
            btnSelect.Content = "Выделить";
            btnSelect.Width = 120;  btnSelect.Height = 30; btnSelect.Margin = new Thickness(15);
            btnSelect.Click += Select_Click;
 
            Grid grid = new Grid();
            grid.Children.Add(btnSelect);
 
            win.Content = grid;
            win.Show();
        }
private void Select_Click(object sender, RoutedEventArgs e)
        {
            RT.Focus();
 
            TextPointer start = RT.Document.ContentStart.GetPositionAtOffset(0);
            TextPointer end   = start.GetPositionAtOffset(7);
            RT.Selection.Select(start, end);
        }
0
Миниатюры
Выделить текст в RichTextBox в одном окне, сохранив фокус на другом окне   Выделить текст в RichTextBox в одном окне, сохранив фокус на другом окне  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2017, 21:20
Ответы с готовыми решениями:

Передача данных из listBox в одном окне, в textBox в другом окне
Доброго времени суток! Есть два окна, на одном находиться сам textBox, а на...

вывод textbox в другом окне
Доброй ночи, такой вопрос: у меня есть окно Window1, в нем поле textbox,в...

C# и внешний клик в другом окне
Добрый день всем, есть проблема, нужно написать кликер, который кликает по...

Обращение к textbox в другом окне
В одном окне располагается текстбокс, в который вводится некоторая строка. Ее...

Множество Grids в Одном окне
Добрый день всем. Меня мучает один вопрос. я хотел бы сделать подобие...

2
Jotun
60 / 61 / 44
Регистрация: 05.12.2014
Сообщений: 475
23.08.2017, 11:29 2
Вот здесь рассматривается данный вопрос только на TextBox. https://social.msdn.microsoft.com/Fo...ocus?forum=wpf

Если это верно и для RichTextBox, то даже если вы выделите текст в неактивном окне - этого не будет видно. Внизу темы по ссылке предлагаются три варианта решения.
0
Rog-Vik
2 / 2 / 2
Регистрация: 06.11.2014
Сообщений: 36
23.08.2017, 18:18  [ТС] 3
По ссылкам нашел половинчатое решение:
C#
1
2
3
4
protected void MyTextBox_LostFocus(object sender, RoutedEventArgs e)
{
            e.Handled = true;
}
Работает как надо, только если перед вызовом второго окна сделать вручную выделение в RichTextBox. В других вариантах действий так и есть: текст выделяется, но выделения не видно.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2017, 18:18

Как образовать разделы в одном окне
Здравствуйте! Начал создавать программу с интерфейсом в среде MS Visual...

Отображение нескольких подсказок на одном окне
Если создать пару ToolTip'ов, привязать их к 2 разным контролам и отобразить...

Как всё делать в одном окне?
Всем привет. Во многих программах можно заметить что все изменения, переходы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru