Загрузка...

C# Вопрос - Ретрансляция теста с TextBox

Тема в разделе C# создана пользователем SNAIQ 8 ноя 2022. 274 просмотра

  1. SNAIQ
    SNAIQ Автор темы 8 ноя 2022 One moment 312 29 окт 2021
    Добрый день! Нужна помощь по решению небольшой проблемки.

    У меня есть 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));

    }



    }

    }

    }
    Функция в целом работаем , но если я начинаю редактировать текстбокс , то в **** обновленные данные не записывает , т.е нет фокусировки на новый текст , который я в запущенной программе записал.
     
  2. DarKRs
    DarKRs 8 ноя 2022 Ура, у меня наконец есть статус 1232 15 июл 2022
    SNAIQ, Как я понял запись в файл происходит при нажатии на кнопку . Данные для записи берутся из TextBox123 другой формы (не основной).

    Как насчёт просто нажать на кнопку после изменения текста в textbox123 ?
    Либо же я ничего не понял
     
    1. SNAIQ Автор темы
      DarKRs,
      У меня получается так , есть TextBox и Button на форме Form123.xaml.cs , я обращаюсь к классу при нажатии на button (Function.cs —-> Function1) и в функции записано , что при нажатии на кнопку , в log.txt отправляются данные с TextBox (всё что там написано) .

      В первоначальном состоянии , до запуска программы , TextBox содержит текст ("Данные регистрации") , после запуска , я допустим меняю текст на ("Данные 12345") , но в лог транслируется всё равно текст ("Данные регистрации"). Т.е . функция выполняется , но нет скажем так , онлайн подкачки изменений в TextBox
    2. vtlstolyarov
      SNAIQ,
      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);
  3. r3xq1
    Сделай просто static в классах и методов и обращайся напрямую к методу из класса
    C#
    // 1.txt - файл куда записывать | textBox1.Text - твоё поле ввода для записи в файл
    File.AppendAllText(@"1.txt", textBox1.Text);
    или так
    C#
    using StreamWriter writer = File.AppendText(@"1.txt");
    writer.WriteLine(textBox1.Text);
    Если же тебе нужно программно заменять нужные строки в файле то:
    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);
    }
     
    8 ноя 2022 Изменено
    1. vtlstolyarov
      r3xq1, чтобы использовать TextBox в статик надо будет много чего менять в коде формы - не имеет смысла.
    2. r3xq1
      vtlstolyarov, а это и не требуется, тут же совсем всё наоборот.
Загрузка...
Top