Datagridview包含表格列

时间:2017-04-16 15:34:53

标签: vb.net visual-studio datagridview

在这里输入图片说明我对视觉工作室来说是一个很新的事情,如果这已经在其他地方得到解答,我会道歉,因为我已经完成了几次搜索并且无法找到解决我问题的任何内容。

我目前在表单中有一个空白的数据网格视图,并在用户使用以下代码将数据插入文本框,Combobox和datetimepicker时填充:

Public Class Add_Row_To_Datagridview_Using_Textboxes
Dim table As New DataTable("table")
Private Sub Add_Row_To_Datagridview_Using_Textboxes_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' header for 
    table.Columns.Add("Id", Type.GetType("System.Int32"))
    table.Columns.Add("First Name", Type.GetType("System.String"))
    table.Columns.Add("Last Name", Type.GetType("System.String"))
    table.Columns.Add("Age", Type.GetType("System.Int32"))
    table.Columns.Add("Gender", Type.GetType("System.String"))
    table.Columns.Add("Date/Time", Type.GetType("System.String"))

一旦用户按下按钮,它就会使用以下代码生成到datagridview中;

 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    table.Rows.Add(TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, ComboBox1.SelectedItem.ToString(), DateTimePicker1.Text)

此数据是使用另一个按钮导出的,可用于其他目的。

我基本上试图在最后添加一个图像进入这个数据网格视图,我找到了一个代码,但是我可以提前生成一个列,这个列与我已经在下面显示的已经填充的数据发生冲突我点击“开始”#39;它已经显示了一个名为图像的列,基于' dgvImageColumn.HeaderText ="图片"'如下所示。

   Private Sub Add_Row_To_Datagridview_Using_Textboxes_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' header for 
    table.Columns.Add("Id", Type.GetType("System.Int32"))
    table.Columns.Add("First Name", Type.GetType("System.String"))
    table.Columns.Add("Last Name", Type.GetType("System.String"))
    table.Columns.Add("Age", Type.GetType("System.Int32"))
    table.Columns.Add("Gender", Type.GetType("System.String"))
    table.Columns.Add("Date/Time", Type.GetType("System.String"))
    '  Create Datagridview image column
    Dim dgvImageColumn As New DataGridViewImageColumn
    ' set header text to the column
    dgvImageColumn.HeaderText = "Image"
    dgvImageColumn.ImageLayout = DataGridViewImageCellLayout.Stretch
    DataGridView1.Columns.Add(dgvImageColumn)

    DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
    DataGridView1.RowTemplate.Height = 120
    DataGridView1.AllowUserToAddRows = False
End Sub

任何建议如何简化这一点,以便我可以在"日期/时间"结束时添加另一列。以及用户在文本框,组合框和dataatimepicker中插入的所有数据,以显示用户上传的图像以及这是我当前的代码;

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Dim opf As New OpenFileDialog
    opf.Filter = "Choose Image(*.jpg;*.png;*.gif)|*.jpg;*.png;*.gif"

    If opf.ShowDialog = DialogResult.OK Then
        PictureBox1.Image = Image.FromFile(opf.FileName)
    End If
End Sub

提前感谢您阅读此主题。

最终,我正在寻找一种使用&table; Colol.Add'来避免冲突来添加图片的方法。

Image

1 个答案:

答案 0 :(得分:0)

回答!

负载:

  Private Sub Add_Row_To_Datagridview_Using_Textboxes_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' header for 
    table.Columns.Add("Id", Type.GetType("System.Int32"))
    table.Columns.Add("First Name", Type.GetType("System.String"))
    table.Columns.Add("Last Name", Type.GetType("System.String"))
    table.Columns.Add("Age", Type.GetType("System.Int32"))
    table.Columns.Add("Gender", Type.GetType("System.String"))
    table.Columns.Add("Date/Time", Type.GetType("System.String"))
    table.Columns.Add("Image", GetType(Image))

按钮:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    table.Rows.Add(TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, ComboBox1.SelectedItem.ToString(), DateTimePicker1.Text, PictureBox1.Image)
    DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
    DataGridView1.RowTemplate.Height = 120
    DataGridView1.AllowUserToAddRows = False
    DataGridView1.DataSource = table

感谢您的支持!