Enum 上的位操作
我遇到了以下问题:
- 我想获取列集合的第一个可见且冻结的列。
我认为这可以做到:
DataGridViewColumnCollection dgv = myDataGridView.Columns;
dgv.GetFirstColumn(
DataGridViewElementStates.Visible | DataGridViewElementStates.Frozen);
- 是否也可以制作一个位掩码来获取第一个冻结或可见列?
I'm having some problems with the following:
- I want to get the first visible AND frozen column of a column collection.
I think this will do it:
DataGridViewColumnCollection dgv = myDataGridView.Columns;
dgv.GetFirstColumn(
DataGridViewElementStates.Visible | DataGridViewElementStates.Frozen);
- Is it also possible to make a bitmask to get the first frozen OR visible column?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
AFAIK 的实现是“所有这些” - 它使用:
这是“所有”。 如果您想编写“任意”,也许可以添加一个辅助方法:
(在
DataGridViewColumnCollection
之前添加“this”,使其成为 C# 3.0 中的扩展方法)或者使用 LINQ:
The implementation is, AFAIK, "all of these" - it uses:
Which is "all of". If you wanted to write an "any of", perhaps add a helper method:
(add the "this" before
DataGridViewColumnCollection
to make it a C# 3.0 extension method in)Or with LINQ:
嗯,位掩码通常是这样工作的:
|
正在连接标志。&
从由位掩码表示的标志集中过滤标志子集。^
通过掩码翻转标志(至少在 C/C++ 中)。要获取第一个冻结或可见列,
GetFirstColumn
必须以不同的方式处理位掩码(例如GetFirstColumn
可以获取与任何标志集匹配的第一列,但情况并非如此) )。Well, bitmasks usually work like this:
|
is joining flags up.&
is filtering subset of flags from a flag set represented by a bitmask.^
is flipping flags by a mask (at least in C/C++).To get the first frozen OR visible column
GetFirstColumn
must handle bitmasks different way (e.g.GetFirstColumn
could get the first column that matches any of the flags set, but this is not the case).