C# DataGridView中单元格Cell改变事件

DataGridView控件中的各种事件都无法直接响应Cell中内容的变化,包括KeyPress等事件,可以采用下面方法

private void dataGridViewBarcode_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (e.Control.GetType().Equals(typeof(DataGridViewTextBoxEditingControl)))
            {
                e.CellStyle.BackColor = Color.FromName("window");
                DataGridViewTextBoxEditingControl textControl = e.Control as DataGridViewTextBoxEditingControl;
                textControl.TextChanged += new EventHandler(textControl_TextChanged);
            }
        }

private void textControl_TextChanged(object sender, EventArgs e)
        {
            this.label1.Text = ((TextBox)sender).Text;
        }

 注:此方法无法响应Cell中的回车键

转载于:https://www.cnblogs.com/CoderWade/p/10070992.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# ,可以通过编程来实现 DataGridView 控件单元格合并。下面是一个示例代码,演示如何在 DataGridView 合并指定的单元格。 首先,你需要在你的窗体或用户控件上添加一个 DataGridView 控件,并给它命名为 dataGridView1。 然后,使用以下代码来合并指定的单元格: ```csharp private void MergeCells() { // 获取要合并的单元格坐标 int mergeStartRow = 0; // 合并开始行 int mergeStartColumn = 0; // 合并开始列 int mergeEndRow = 2; // 合并结束行 int mergeEndColumn = 1; // 合并结束列 // 循环遍历要合并的单元格范围 for (int row = mergeStartRow; row <= mergeEndRow; row++) { for (int column = mergeStartColumn; column <= mergeEndColumn; column++) { // 设置单元格的合并标志 DataGridViewCell cell = dataGridView1[column, row]; cell.Value = ""; // 设置单元格值为空 cell.Tag = "Merged"; // 设置合并标志为"Merged" } } // 设置合并后的单元格样式 dataGridView1.Rows[mergeStartRow].Cells[mergeStartColumn].Style.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridView1.Rows[mergeStartRow].Cells[mergeStartColumn].Style.BackColor = Color.LightBlue; dataGridView1.Rows[mergeStartRow].Cells[mergeStartColumn].Style.SelectionBackColor = Color.LightBlue; dataGridView1.Rows[mergeStartRow].Cells[mergeStartColumn].Style.SelectionForeColor = Color.Black; // 调整合并后的单元格大小 dataGridView1.Rows[mergeStartRow].Height = dataGridView1.Rows[mergeEndRow].Height * (mergeEndRow - mergeStartRow + 1); dataGridView1.Columns[mergeStartColumn].Width = dataGridView1.Columns[mergeEndColumn].Width * (mergeEndColumn - mergeStartColumn + 1); // 清除合并标志 for (int row = mergeStartRow; row <= mergeEndRow; row++) { for (int column = mergeStartColumn; column <= mergeEndColumn; column++) { DataGridViewCell cell = dataGridView1[column, row]; cell.Tag = null; } } } ``` 上述代码,你需要根据需要修改合并的起始行、起始列、结束行和结束列。在这个例子单元格的值被设置为空,合并标志被设置为"Merged",合并后的单元格样式被设置为居对齐、浅蓝色背景,并调整了合并后的单元格大小。最后,清除了合并标志。 你可以在适当的事件调用 MergeCells() 方法来实现单元格的合并。比如,在窗体加载事件调用该方法: ```csharp private void Form1_Load(object sender, EventArgs e) { MergeCells(); } ``` 希望这个例子对你有帮助!如有任何疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值