Добрый день! Нужна помощь по решению небольшой проблемки. У меня есть form123.xaml.cs , я туда добавил TextBox с Name "TextBox123" . Содержимое поля к примеру у меня идут: Дата Регистрация . На форме у меня отображается в TexBox123 текст (Дата Регистрация). Я хочу эту переменную вынести в Log файл .txt и обращаюсь к классу Function1 (в которой у меня записана функция , для генерации Log) , который вынесен в отдельный файл класса т.е function_test.cs. В чём проблема ? У меня получается при нажатии на кнопку , содержимое TextBox копируется в файл Log , но если программа запущена и я начинаю к примеру в текстовом поле добавлять/редактировать текст , то в Log все равно транслируется - первоначальный текст. Функция в файле function_test.cs: public class Function1 : form123 { public void logfile() { string path = @"D:\Log1.txt"; using (FileStream fileval = new(path, FileMode.Append)) { using (StreamWriter designel = new(fileval)) { designel.WriteLine(">> Пол: " + (TextBox123.Text)); } } } } Код public class Function1 : form123 { public void logfile() { string path = @"D:\Log1.txt"; using (FileStream fileval = new(path, FileMode.Append)) { using (StreamWriter designel = new(fileval)) { designel.WriteLine(">> Пол: " + (TextBox123.Text)); } } } } Функция в целом работаем , но если я начинаю редактировать текстбокс , то в **** обновленные данные не записывает , т.е нет фокусировки на новый текст , который я в запущенной программе записал.
SNAIQ, Как я понял запись в файл происходит при нажатии на кнопку . Данные для записи берутся из TextBox123 другой формы (не основной). Как насчёт просто нажать на кнопку после изменения текста в textbox123 ? Либо же я ничего не понял
DarKRs, У меня получается так , есть TextBox и Button на форме Form123.xaml.cs , я обращаюсь к классу при нажатии на button (Function.cs —-> Function1) и в функции записано , что при нажатии на кнопку , в log.txt отправляются данные с TextBox (всё что там написано) . В первоначальном состоянии , до запуска программы , TextBox содержит текст ("Данные регистрации") , после запуска , я допустим меняю текст на ("Данные 12345") , но в лог транслируется всё равно текст ("Данные регистрации"). Т.е . функция выполняется , но нет скажем так , онлайн подкачки изменений в TextBox
SNAIQ, public static class Functions { public static void LogToFile(string message) { const string path = @"D:\Log1.txt"; File.AppendAllText(path, ">> " + message + Environment.NewLine); } } C# public static class Functions { public static void LogToFile(string message) { const string path = @"D:\Log1.txt"; File.AppendAllText(path, ">> " + message + Environment.NewLine); } } и потом внутри Button_Click(): Funclions.LogToFile("Пол: " + TextBox123.Text);
Сделай просто static в классах и методов и обращайся напрямую к методу из класса // 1.txt - файл куда записывать | textBox1.Text - твоё поле ввода для записи в файл File.AppendAllText(@"1.txt", textBox1.Text); C# // 1.txt - файл куда записывать | textBox1.Text - твоё поле ввода для записи в файл File.AppendAllText(@"1.txt", textBox1.Text); или так using StreamWriter writer = File.AppendText(@"1.txt"); writer.WriteLine(textBox1.Text); C# using StreamWriter writer = File.AppendText(@"1.txt"); writer.WriteLine(textBox1.Text); Если же тебе нужно программно заменять нужные строки в файле то: public static void ReplaceInFile(string filePath, string searchText, string replaceText) { using StreamReader reader = new(filePath); string content = reader.ReadToEnd(); content = Regex.Replace(content, searchText, replaceText); using StreamWriter writer = new(filePath); writer.Write(content); } C# public static void ReplaceInFile(string filePath, string searchText, string replaceText) { using StreamReader reader = new(filePath); string content = reader.ReadToEnd(); content = Regex.Replace(content, searchText, replaceText); using StreamWriter writer = new(filePath); writer.Write(content); }
r3xq1, чтобы использовать TextBox в статик надо будет много чего менять в коде формы - не имеет смысла.