【问题标题】:Windows Form Application (VB) - Dataview reading in txt file sizingWindows 窗体应用程序 (VB) - Dataview 读取 txt 文件大小
【发布时间】:2012-03-11 23:46:34
【问题描述】:

我有一个 Windows 窗体应用程序来创建一个小型备份程序(我是一名学生,这基本上是一个制作工作项目)无论如何,我得到了它,但我的数据网格视图也没有按照我想要的方式显示.它不是自动调整大小的,所以看起来很糟糕。我在 .txt 中读取了我的 datagridview。这是我的代码;

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim filename As String = "C:\Code\filenames.txt"
    Dim dtTest As New DataTable("dtTest")

    dtTest.Columns.Add("Col1", GetType(String))

    Try
        Dim reader As New Microsoft.VisualBasic.FileIO.TextFieldParser(filename)
        reader.TextFieldType = FileIO.FieldType.Delimited
        reader.SetDelimiters(",")

        While Not reader.EndOfData
            Dim Fields() As String = reader.ReadFields
            dtTest.Rows.Add(Fields)
        End While

        reader.Close()
    Catch ex As Exception
        MessageBox.Show(Err.Description)
    End Try

    DataGridView1.DataSource = dtTest.DefaultView
End Sub

但它在较大的 datagridview 中显示为一个非常小的框。任何帮助,将不胜感激。提前致谢。

【问题讨论】:

  • 解释“非常小的”框以及您想看到的内容。
  • 这太小了postimage.org/image/4zuvmal0n 这是我希望它看起来像postimage.org/image/4haex8ndj 现在我必须在程序开始运行后手动增加列大小。
  • 我在工作中无法访问 postimage,但是您是否尝试过设置AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

标签: winforms visual-studio-2010 datagridview


【解决方案1】:

将列的宽度设置为控件的宽度减去列左侧的选择框的宽度(语法可能已关闭,在 C# 中测试并尝试 VB-ize):

dtTest.Columns.Add("Col1", GetType(String))
dtTest.Columns("Col1").Width = dtTest.Width - dtTest.RowHeadersWidth

可能还需要使用额外的 -1 或 -2 进行调整,以使其足够瘦,以避免出现水平滚动条。过去,如果您的对话框和控件可调整大小,您可以在表单大小更改时添加事件处理程序以再次调用该行代码并将列设置为宽度的 100%。

编辑:对于未来的读者,请参阅下面的 cmets 以获得更好的方法。

【讨论】:

  • 你的方法很有效,谢谢。但是,我也确实找到了一种单独的方法。 DataGridView1.AutoSizeColumnsMode = _ DataGridViewAutoSizeColumnsMode.Fill
  • 我没有注意到 AutoSizeColumnsMode 属性。我知道 Width 属性并从那里解决了问题。 AutoSizeColumnsMode 绝对更适合您的目的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
  • 2014-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多