• 大小: 67KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: C#
  • 标签: DataGridView  

资源简介

C# DataGridView单元格中动态添加多个控件。开发环境VS2012。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 列表
{
    struct structData
    {
        public int No;
        public string Info;
    }
    enum enumData
    {
        No = 0
        Info
    }

    public partial class Form1 : Form
    {
        DataTable Table = new DataTable();                         //数据,绑定DataGridView
        structData[] Data = new structData[10];                    //数据,长度自行更改
        string NoColumnName = Enum.GetName(typeof(enumData) 0);   //数据源列名
        string InfoColumnName = Enum.GetName(typeof(enumData) 1); //数据源列名
        CheckBox[] Chx = new CheckBox[10];                         //按钮CheckBox
        Button[] Btn = new Button[10];                             //按钮Button
        int ColumnIndex = 1;                                       //要添加在哪一个列的索引

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender EventArgs e)
        {
            Init();
        }

        private void Init()
        {
            Bind();
            ColumnHeader();
            AddControl();
        }

        private void Bind()
        {
            Table.Columns.Add(NoColumnName typeof(int));
            Table.Columns.Add(InfoColumnName typeof(string));

            for (int i = 0; i < Data.Length; i++)
            {
                DataRow row = Table.NewRow();

                row[NoColumnName] = Data[i].No;
                row[InfoColumnName] = Data[i].Info;

                Table.Rows.Add(row);
            }
            Table.AcceptChanges();
            dataGridView1.DataSource = Table;
            dataGridView1.Refresh();
        }

        //添加按钮
        private void AddControl()
        {
            
            dataGridView1.Columns[InfoColumnName].Width = 70;

            for (int i = 0; i < Data.Length; i++)
            {
                TextBox tbx = new TextBox();  
                CheckBox chx = new CheckBox();  //添加CheckBox
                Button btn = new Button();      //添加Button

                //添加
                dataGridView1.Controls.Add(chx);
                dataGridView1.Controls.Add(btn);

                //获取大小
                Rectangle rect = dataGridView1.GetCellDisplayRectangle(ColumnIndex i true);
                //大小设置
                tbx.Size = new Size((rect.Width / 3) rect.Height);
                chx.Size = new Size((rect.Width / 3) rect.Height);
                btn.Size = new Size((rect.Width / 3) rect.Height);

                //位置设置
                tbx.Location = new Point(rect.Left rect.Top );
                chx.Location = new Point(rect.Left + tbx.Width rect.Top);
                btn.Location = new Point(rect.Left + tbx.Width + chx.Width rect

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        187  2018-12-18 11:44  列表\列表\App.config

     文件      12800  2018-12-19 14:31  列表\列表\bin\Debug\列表.exe

     文件        187  2018-12-18 11:44  列表\列表\bin\Debug\列表.exe.config

     文件      28160  2018-12-19 14:31  列表\列表\bin\Debug\列表.pdb

     文件      22984  2018-12-19 14:32  列表\列表\bin\Debug\列表.vshost.exe

     文件        187  2018-12-18 11:44  列表\列表\bin\Debug\列表.vshost.exe.config

     文件        490  2010-03-17 22:39  列表\列表\bin\Debug\列表.vshost.exe.manifest

     文件       6090  2018-12-19 14:31  列表\列表\Form1.cs

     文件       4328  2018-12-19 14:31  列表\列表\Form1.Designer.cs

     文件       6177  2018-12-19 14:31  列表\列表\Form1.resx

     文件       6931  2018-12-18 11:44  列表\列表\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件          0  2018-12-18 11:44  列表\列表\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs

     文件          0  2018-12-18 11:44  列表\列表\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

     文件          0  2018-12-18 11:44  列表\列表\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

     文件        591  2018-12-19 14:32  列表\列表\obj\Debug\列表.csproj.FileListAbsolute.txt

     文件        975  2018-12-19 14:31  列表\列表\obj\Debug\列表.csproj.GenerateResource.Cache

     文件       2209  2018-12-18 14:59  列表\列表\obj\Debug\列表.csprojResolveAssemblyReference.cache

     文件      12800  2018-12-19 14:31  列表\列表\obj\Debug\列表.exe

     文件        180  2018-12-19 14:31  列表\列表\obj\Debug\列表.Form1.resources

     文件      28160  2018-12-19 14:31  列表\列表\obj\Debug\列表.pdb

     文件        180  2018-12-18 14:59  列表\列表\obj\Debug\列表.Properties.Resources.resources

     文件        518  2018-12-18 11:44  列表\列表\Program.cs

     文件       1350  2018-12-18 11:44  列表\列表\Properties\AssemblyInfo.cs

     文件       2864  2018-12-18 11:44  列表\列表\Properties\Resources.Designer.cs

     文件       5612  2018-12-18 11:44  列表\列表\Properties\Resources.resx

     文件       1093  2018-12-18 11:44  列表\列表\Properties\Settings.Designer.cs

     文件        249  2018-12-18 11:44  列表\列表\Properties\Settings.settings

     文件       3791  2018-12-18 14:59  列表\列表\列表.csproj

     文件        908  2018-12-18 11:44  列表\列表.sln

    ..A..H.    190976  2018-12-19 14:32  列表\列表.v11.suo

............此处省略12个文件信息

评论

共有 条评论