У меня есть приложение winforms для конечного пользователя (не для меня). Для устранения неполадок я хочу иметь отдельную форму с текстовым полем (RichTextBox), которое действует как онлайн-журнал, таким образом, если я запускаю программу на станции конечного пользователя, я вижу, что все работает/что-то не так. неправильный.
Я также хочу, чтобы конечный пользователь мог вызвать мне во время работы, и я мог бы открыть онлайн-журнал и посмотреть, что произошло до сих пор (не просто открыть файл журнала и увидеть все это до сих пор, но увидеть все до сих пор и продолжить работу). с приложением и онлайн-журналом). Я не хочу, чтобы конечный пользователь видел онлайн-журнал, я создал кнопку в главной форме, которая показывает онлайн-журнал по запросу.
Я создал вторую форму, которая действует как журнал, но если я пишу в текстовое поле в форме журнала, не показывая сначала форму журнала, она, похоже, не работает (когда я использую LogForm.Show() из кнопки в основная форма, текстовое поле формы журнала пусто). Я должен сначала использовать ЖурналФорма.Показать() чем я могу скрыть форму журнала (используя LogForm.Hide()), и в следующий раз, когда я покажу форму журнала (используя LogForm.Show()), я все до сих пор вижу в форме журнала.
Я ищу решение этой проблемы, теперь я просто использую ЖурналФорма.Показать(); ЖурналФорма.Скрыть(); в основной форме инициализируется, но в результате форма журнала мерцает один раз, и конечный пользователь иногда смущается этим.
Извините за отсутствие кода, программа создается в автономной сети (без интернета).
Спасибо.
форма журнала инициализации, сделайте какой-нибудь метод для входа в систему как общедоступный. И когда вы нажмете показать перед созданной формой.
Проблема решена, большое спасибо





похоже, это не работает - не удалось воспроизвести это:
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).
Нажатие одной кнопки (кнопка журнала сообщения) несколько раз, а затем другая кнопка (кнопка отображения формы журнала) приводит к тому, что форма регистрации появляется со всем текстом, введенным в текстовое поле, просто отлично. Еще одно нажатие кнопки регистрации сообщения приводит к вводу дополнительного текста в форму регистрации:
Да, вы правы, поэтому я добавил комментарий, что проблема решена. Наверное, это что-то другое, что я напутал в начале. Спасибо за ваш ответ.
Вам нужно сбросить() данные записи. Windows использует таймеры (а также размер временного буфера) для перемещения данных в/из потоков. Таким образом, конец данных может еще не находиться в потоке.