首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果选定的单元格在同一列中,请执行某些操作

如果选定的单元格在同一列中,请执行某些操作
EN

Stack Overflow用户
提问于 2012-06-26 12:58:50
回答 4查看 87关注 0票数 0

只有当选定的dgvCells在同一列中时,我才想做一些事情:

代码语言:javascript
运行
复制
foreach (DataGridViewCell c in dgvC.SelectedCells)
if (c.ColumnIndex is the same) // how to say this ?
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-26 13:07:13

有一段时间没有回复,这是我的解决方案,我认为它还不够优化,但我认为它会做好这项工作

代码语言:javascript
运行
复制
int columnIndex = dgvC.SelectedCells[0].ColumnIndex;
bool sameCol = true;
for(int i=0;i<dgvC.SelectedCells.Count;i++)
    {
        if(dgvC.SelectedCells[i].ColumnIndex != columnIndex)
         {
           sameCol = false;
           break;
          }
     }
 if (sameCol)
     {
       MessageBox.Show("Same Column");
     }
  else
     {
       MessageBox.Show("Not same column");
     }

编辑:您也可以尝试:

代码语言:javascript
运行
复制
    int columnIndex = dgvC.SelectedCells[0].ColumnIndex;
    if (dgvC.SelectedCells.Cast<DataGridViewCell>().Any(r => r.ColumnIndex != columnIndex))
    {
        //Not same
    }
    else
    {
        //Same
    }
票数 3
EN

Stack Overflow用户

发布于 2012-06-26 13:09:05

可以使用GroupBy确保单元格来自同一列

代码语言:javascript
运行
复制
if(dgvC.SelectedCells.Cast<DataGridViewCell>()
            .GroupBy(c => c.ColumnIndex).Count() == 1)
{
   foreach (DataGridViewCell c in dgvC.SelectedCells)
     //your code
}
票数 2
EN

Stack Overflow用户

发布于 2012-06-26 13:06:48

像这样的基本功能应该是有效的:

代码语言:javascript
运行
复制
        Boolean allCells = true;
        int colIndex = dgvC.SelectedCells[0].ColumnIndex;

        foreach (DataGridViewCell c in dgvC.SelectedCells)
        {
            if(c.ColumnIndex != colIndex)
            {
                allCells = false;
            }
        }

        if(allCells)
        {
            //do stuff here
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11200979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档