【问题标题】:Displaying content of a txt file in datagrid在数据网格中显示 txt 文件的内容
【发布时间】:2015-09-25 01:40:59
【问题描述】:

我是 vb 的新手,无法在 datagrid 中显示 .txt 文件的内容。

到目前为止,我已经可以创建一个 .txt 文件(如果不存在)并将 textbox1 的值保存到所述 .txt 文件中的新行

使用Dim appendText As String = "Today is: " + DateTime.Now + " | " + TextBox1.Text + Environment.NewLine,输出(在txt文件中)如下所示:

今天是:2015 年 9 月 25 日上午 9:28:35 |第一条消息
今天是:2015 年 9 月 25 日上午 9:28:41 |第二条消息

等等……

当我点击 btnView(在数据网格中显示文件内容)时的输出是

第 1 列标题:第 1 列
列 2 标题:列 2
第 1 列的第 1 行:今天是:2015 年 9 月 25 日上午 9:28:35
第 2 列的第 1 行:第一条消息
第 2 列的第 2 行:今天是:2015 年 9 月 25 日上午 9:28:41
第 2 列的第 2 行:第二条消息

使用代码:

 Dim TextFieldParser1 As New Microsoft.VisualBasic.FileIO.TextFieldParser("survey.txt")
        TextFieldParser1.Delimiters = New String() {"|"}
        While Not TextFieldParser1.EndOfData

            Dim Row1 As String() = TextFieldParser1.ReadFields()
            If DataGridView1.Columns.Count = 0 AndAlso Row1.Count > 0 Then
                Dim i As Integer
                For i = 0 To Row1.Count - 1
                    DataGridView1.Columns.Add("Column" & i + 1, "Column" & i + 1)
                Next
            End If
            DataGridView1.Rows.Add(Row1)
        End While

但是我想以这种格式在数据网格视图中显示内容:

第 1 列标题:日期和时间
column2 标题:消息
第 1 列的第 1 行:今天是:2015 年 9 月 25 日上午 9:28:35
第 2 列的第 1 行:第一条消息
第 2 列的第 2 行:今天是:2015 年 9 月 25 日上午 9:28:41
第 2 列的第 2 行:第二条消息

我在更改标题时遇到了问题。如果有人能帮我解决这个问题,我将不胜感激。

【问题讨论】:

  • 你为什么要告诉String.SplitTab 字符上拆分,而这不是你用来分隔数据的字符?
  • @jmcilhinney 我已经在我的问题中编辑了代码。你能告诉我我做错了什么吗?我只是在编辑/更改标题时遇到问题
  • 查看添加列的位置。它正在显示您告诉它显示的内容。如果您希望它显示其他内容,请告诉它显示其他内容。
  • 另外,你告诉你的TextFieldParser你的分隔符是“|”。这实际上是您在字段值之间放置的内容吗?我认为不会。
  • @jmcilhinney 哦。对不起,我只是 vb 的新手,我还在研究。好吧。 DateTime.Now + " | " + TextBox1.Text

标签: vb.net datagrid notepad


【解决方案1】:

jmcilhinney 说的是对的。在您的代码中,当您添加列时,您将传递两个参数:columnName 和 headerText。您用作 headerText 的文本是您将在列标题中看到的文本:

DataGridView1.Columns.Add("Column" & i + 1, "Column" & i + 1)

所以,headerText 是“Column1”或“Column2”。这就是你传递的价值和你现在得到的。

我会做什么:

我会在“while..end while”块中添加列,然后我会填充网格:

DataGridView1.Columns.Add("Column1", "Date and Time")
DataGridView1.Columns.Add("Column2", "Message")

While Not textFieldParser1.EndOfData
    Dim content As String() = textFieldParser1.ReadFields
    DataGridView1.Rows.Add(content)
End While

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2018-08-07
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多