C#怎么将txt文件的多行数据读取到多个textbox控件中,一个textbox控件读文本文件的一行数据

2024-12-04 20:01:57
推荐回答(3个)
回答1:

根据文本文件内容的行数,动态加载TextBox并在每个TextBox中显示一行内容。实现方法如下:

(1)在Visutal Studio中新建一个“Windows应用程序”

(2)在Form1上布置一个Button

(3)窗体代码 Form1.cs

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

namespace WindowsFormsApplication6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Text = "读文本文件";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 读入文本文件
            // 注意:利用记事本创建的文本文件的编码空洞格式必须是Unicode或UTF-8
            string[] lines = File.ReadAllLines(@"d:\sample.txt");
            
            // 动态加载TextBox并在每个TextBox中显示一行内容
            TextBox textBox = null;
            foreach (string line in lines)
            {
                textBox = AddTextBox(textBox);
                textBox.Text = line;
            }
        }

        /// 
        /// 向窗体上动态添加TextBox
        /// ^^^^^^^^^^^^^^^^^^^^^^^
  态纤      /// 新添加的文本框位于由参数PrevTextBox指定的前一个文本框的下方
        /// 如果PrevTextBox=null表示添加的文本框为第一个
        /// 

        /// 前一个文本框
 斗闭枯       /// 新添加的文本框
        private TextBox AddTextBox(TextBox prevTextBox)
        {
            TextBox textBox = new TextBox();
            textBox.Left = 10;
            if (prevTextBox == null)
            {
                // 第一个文本框
                textBox.Top = 10;
            }
            else
            {
                // 新添加的文本框在前一个文本框的下方
                textBox.Top = prevTextBox.Top + prevTextBox.Height + 5;
            }
            this.Controls.Add(textBox);
            return textBox;
        }
    }
}

(4)运行结果

回答2:

你把尘皮你的text控件都放在一个panel里面,name 都用规律的,比如 txt1,txt2,txt3 .....,然后循环如下

System.IO.StreamReader sr = new System.IO.StreamReader("test.txt");
            int id = 0;
            while (!sr.EndOfStream)
         派凳差   {
                Control[] controls = this.pnl1.Controls.Find("txt" + (id++).ToString(), true);
                if (controls == null) continue;
     粗碧           foreach (Control control in controls)
                {
                    if (control is TextBox)
                        control.Text = sr.ReadLine();
                }
            }

回答3:

StreamReader s = new StreamReader();
TextBox1.Text= s.ReadLine();