none
datagridview checkbox列加位置控制后选中时为啥式样还是居中? RRS feed

  • 问题

  •  private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
               
    if (e.ColumnIndex == 1) //checkbox col
                {
                    rightZeroCountsc
    = GetRightZeroCounts(CommonFunc.GetDbInt(dataGridView1.Rows[e.RowIndex].Cells[0].Value), out firstNotZeroNumc);
                   
    if (rightZeroCountsc == 2) e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                   
    else if (rightZeroCountsc == 3) e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
                   
    else
                    {
                        e.CellStyle.Alignment
    = DataGridViewContentAlignment.MiddleRight;
                    }
                }
            }

    上面的是控制checkbox列位置的式样,但是选中某个checkbox后还是会跳到中间显示,如何解决这个问题?
    2009年4月17日 3:06

答案

  • 哦这样啊,这个是因为你没有设置单元格的默认样式,设了就不会出现这样的问题了
    this.dataGridView1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft;

    知识改变命运,奋斗成就人生!
    • 已标记为答案 a013strife 2009年4月18日 1:00
    2009年4月17日 15:53
    版主

全部回复

  • 楼主的代码写法没有问题, 请确定你的checkBox 是不是第2列或 rightZeroCountsc 是否计算正确,打个断点调试一下
    知识改变命运,奋斗成就人生!
    2009年4月17日 6:16
    版主
  • 你可以去试试,private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {


            }改变checkbox的式样向左或右排列,选中checkbox后还是会居中的,不是其它问题,为什么会这样?

    2009年4月17日 15:06
  • 哦这样啊,这个是因为你没有设置单元格的默认样式,设了就不会出现这样的问题了
    this.dataGridView1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft;

    知识改变命运,奋斗成就人生!
    • 已标记为答案 a013strife 2009年4月18日 1:00
    2009年4月17日 15:53
    版主
  •                     dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.Alignment = DataGridViewContentAlignment.TopLeft;   //发现这样才有用...
                    }
                    //e.CellStyle.Alignment = DataGridViewContentAlignment.BottomRight;  这样没用...
    2009年4月18日 0:38