2 / 2 / 2
Регистрация: 06.11.2014
Сообщений: 36
1

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

22.08.2017, 21:20. Показов 1191. Ответов 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);
        }
Миниатюры
Выделить текст в RichTextBox в одном окне, сохранив фокус на другом окне   Выделить текст в RichTextBox в одном окне, сохранив фокус на другом окне  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.08.2017, 21:20
Ответы с готовыми решениями:

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

Перенести текст с одного label на label в другом окне
Как перенести текст с label одного окна в label другого окна? ссылка на гитхаб: ...

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

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

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

Если это верно и для RichTextBox, то даже если вы выделите текст в неактивном окне - этого не будет видно. Внизу темы по ссылке предлагаются три варианта решения.
0
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2017, 18:18
Помогаю со студенческими работами здесь

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

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

События в неактивном окне (в окне без фокуса)
Делаю для себя программу, которая будет отображать нажатия определенных клавиш. Например, во время...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru