Как взять текст из .txt и поместить его в текстовое поле? - PullRequest
0 голосов
/ 14 июня 2019

Я очень новичок в этом, и я пытаюсь взять текст из файла .txt и ввести его в текстовое поле.

Я пытался прочитать текст из файла, который был расположен на моем компьютере

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        textBox1.Text = (File.ReadAllText("F:\\Example"));
    }

Мне нужен textBox1 для отображения текста, который находится в «F: \ Example»

Ответы [ 3 ]

2 голосов
/ 14 июня 2019

В этом примере добавляется обработчик к событию OnLoad формы:

using System;
using System.IO;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.textBox1.Text = File.ReadAllText(@"F:\Example");
        }
    }
}
0 голосов
/ 14 июня 2019

если вы используете Form_Load, то вы должны читать файл асинхронно, потому что любое время загрузки файла замораживает вашу форму от отображения. Например, если загрузка файла занимает 5 секунд, то форма не будет видна в течение 5 секунд.

Вот пример, который использует Task.Run для асинхронной загрузки данных и их отображения. Если сначала отображается форма с сообщением «Загрузка данных ...», текстовое поле обновляется после загрузки данных.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        this.textBox1.Text = "Loading data...";

        LoadData();
    }

    private async void LoadData()
    {
        string text = null;

        await Task.Run(() =>
        {
            text = File.ReadAllText("z:\\very_large_file.txt");
        });

        this.textBox1.Text = text;
    }
}

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

Надеюсь, это поможет:)

0 голосов
/ 14 июня 2019

Как сказал @John, если вы хотите отобразить текст после загрузки формы, вы можете напрямую использовать событие Form.Load или переопределить его следующим образом:

protected override void OnLoad(EventArgs e)
{
   base.OnLoad(e);
   textBox1.Text = File.ReadAllText("F:\\Example");
}

Выможно также загрузить текст нажатием кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...