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

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

根据文本文件内容的行数,动态加载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;
            }
        }

        /// <summary>
        /// 向窗体上动态添加TextBox
        /// ^^^^^^^^^^^^^^^^^^^^^^^
        /// 新添加的文本框位于由参数PrevTextBox指定的前一个文本框的下方
        /// 如果PrevTextBox=null表示添加的文本框为第一个
        /// </summary>
        /// <param name="prevTextBox">前一个文本框</param>
        /// <returns>新添加的文本框</returns>
        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)运行结果

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-29

你把你的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();
                }
            }

本回答被提问者采纳
第2个回答  2013-12-29
StreamReader s = new StreamReader();
TextBox1.Text= s.ReadLine();追问

读取到多个textbox控件..文本文件每一行,读取到每一个textbox控件

追答

StreamReader s = new StreamReader(); TextBox1.Text= s.ReadLine();
TextBox2.Text= s.ReadLine();
或者反射赋值

相似回答