Winforms - писать в RichTextBox в форме, не показывая форму

У меня есть приложение winforms для конечного пользователя (не для меня). Для устранения неполадок я хочу иметь отдельную форму с текстовым полем (RichTextBox), которое действует как онлайн-журнал, таким образом, если я запускаю программу на станции конечного пользователя, я вижу, что все работает/что-то не так. неправильный.

Я также хочу, чтобы конечный пользователь мог вызвать мне во время работы, и я мог бы открыть онлайн-журнал и посмотреть, что произошло до сих пор (не просто открыть файл журнала и увидеть все это до сих пор, но увидеть все до сих пор и продолжить работу). с приложением и онлайн-журналом). Я не хочу, чтобы конечный пользователь видел онлайн-журнал, я создал кнопку в главной форме, которая показывает онлайн-журнал по запросу.

Я создал вторую форму, которая действует как журнал, но если я пишу в текстовое поле в форме журнала, не показывая сначала форму журнала, она, похоже, не работает (когда я использую LogForm.Show() из кнопки в основная форма, текстовое поле формы журнала пусто). Я должен сначала использовать ЖурналФорма.Показать() чем я могу скрыть форму журнала (используя LogForm.Hide()), и в следующий раз, когда я покажу форму журнала (используя LogForm.Show()), я все до сих пор вижу в форме журнала.

Я ищу решение этой проблемы, теперь я просто использую ЖурналФорма.Показать(); ЖурналФорма.Скрыть(); в основной форме инициализируется, но в результате форма журнала мерцает один раз, и конечный пользователь иногда смущается этим.

Извините за отсутствие кода, программа создается в автономной сети (без интернета).

Спасибо.

Вам нужно сбросить() данные записи. Windows использует таймеры (а также размер временного буфера) для перемещения данных в/из потоков. Таким образом, конец данных может еще не находиться в потоке.

jdweng 24.12.2020 15:06

форма журнала инициализации, сделайте какой-нибудь метод для входа в систему как общедоступный. И когда вы нажмете показать перед созданной формой.

KreminT 24.12.2020 15:15

Проблема решена, большое спасибо

Yakir Shlezinger 24.12.2020 15:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
138
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

похоже, это не работает - не удалось воспроизвести это:

public partial class Form1 : Form
{
    private Form f2 = new Form();
    public Form1()
    {
        InitializeComponent();

        f2.Controls.Add(new RichTextBox() { Name = "rtb1" });
    }

    private void button1_Click(object sender, EventArgs e)
    {
        f2.Show();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        (f2.Controls["rtb1"] as RichTextBox).AppendText(Guid.NewGuid().ToString());
    }
}

Я создал форму с двумя кнопками, подключил их обработчики событий щелчка, как показано. У этой формы есть еще одна форма, представляющая собой переменную класса, на которую помещается форматированное текстовое поле. Одна из кнопок добавляет записи журнала в расширенное текстовое поле, другая кнопка показывает форму журнала (f2).

Нажатие одной кнопки (кнопка журнала сообщения) несколько раз, а затем другая кнопка (кнопка отображения формы журнала) приводит к тому, что форма регистрации появляется со всем текстом, введенным в текстовое поле, просто отлично. Еще одно нажатие кнопки регистрации сообщения приводит к вводу дополнительного текста в форму регистрации:

Да, вы правы, поэтому я добавил комментарий, что проблема решена. Наверное, это что-то другое, что я напутал в начале. Спасибо за ваш ответ.

Yakir Shlezinger 24.12.2020 21:38

Другие вопросы по теме