繁体   English   中英

C#中的Datagridview列?

[英]Datagridview column in C#?

如何让列能够包含文本框或图像? 我试图将任何类型的数据添加到该列,无论是文本还是图像。 我如何在C#中做到这一点?

好的,以编程方式,我将在同一列中同时拥有文本框和图像...我该怎么做?

这是一个例子。 但是,您将需要处理默认图像(如果没有它将有一个交叉标记的图像)。 请参阅此MSDN链接

    private void Form1_Load(object sender, EventArgs e)
    {
        DataTable dataTable = new DataTable();
        dataTable.Columns.Add("Name");
        dataTable.Columns.Add("Image");

        dataTable.Rows.Add("Desert", @"C:\Users\Public\Pictures\Sample Pictures\Desert.jpg");
        dataTable.Rows.Add("Tulips", @"C:\Users\Public\Pictures\Sample Pictures\Tulips.jpg");

        dataTable.AcceptChanges();

        DataGridViewTextBoxColumn textColumn = new DataGridViewTextBoxColumn();
        textColumn.DataPropertyName = "Name";
        textColumn.HeaderText = "Name";
        textColumn.Width = 100;
        dataGridView1.Columns.Add(textColumn);

        DataGridViewImageColumn imageColumn = new DataGridViewImageColumn();
        imageColumn.DataPropertyName = "Image";
        imageColumn.HeaderText = "Image";
        imageColumn.Width = 100;            
        dataGridView1.Columns.Add(imageColumn);

        dataGridView1.DataSource = dataTable;
    }

    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        if (this.dataGridView1.Columns[e.ColumnIndex] is DataGridViewImageColumn)
        {
            string imagePath = (e.Value ?? "").ToString().Trim();
            if(System.IO.File.Exists(imagePath))
                e.Value = Image.FromFile(imagePath);
        }
    }

要在DataGridView添加TextBox控件,请单击智能标记并选择“添加列”。 选择DataGridViewTextColumn ,然后单击“添加”。 如果选择图像,请选择DataGridViewImageColumn

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM