عمليات البت على التعداد
-
22-08-2019 - |
سؤال
أواجه بعض المشاكل فيما يلي:
- أريد الحصول على أول عمود مرئي ومجمد من مجموعة الأعمدة.
أعتقد أن هذا سيفعل ذلك:
DataGridViewColumnCollection dgv = myDataGridView.Columns;
dgv.GetFirstColumn(
DataGridViewElementStates.Visible | DataGridViewElementStates.Frozen);
- هل من الممكن أيضًا عمل قناع نقطي للحصول على أول عمود مجمّد أو مرئي؟
المحلول
التنفيذ هو AFAIK، "كل هذه" - يستخدم:
((this.State & elementState) == elementState);
وهو "كل".إذا أردت كتابة "أي من"، فربما تضيف طريقة مساعدة:(أضف "هذا" من قبل DataGridViewColumnCollection
لجعلها طريقة تمديد C# 3.0 في)
public static DataGridViewColumn GetFirstColumnWithAny(
DataGridViewColumnCollection columns, // optional "this"
DataGridViewElementStates states)
{
foreach (DataGridViewColumn column in columns)
{
if ((column.State & states) != 0) return column;
}
return null;
}
أو مع لينك:
return columns.Cast<DataGridViewColumn>()
.FirstOrDefault(col => (col.State & states) != 0);
نصائح أخرى
حسنًا، تعمل الأقنعة النقطية عادة على النحو التالي:
|
هو الانضمام إلى الأعلام. &
يقوم بتصفية مجموعة فرعية من الأعلام من مجموعة أعلام ممثلة بقناع نقطي. ^
يقوم بقلب الأعلام بواسطة قناع (على الأقل في C/C++).
للحصول على أول عمود مجمد أو مرئي GetFirstColumn
يجب التعامل مع الأقنعة النقطية بطريقة مختلفة (على سبيل المثال. GetFirstColumn
يمكن أن تحصل على العمود الأول الذي يطابق أيًا من مجموعة الأعلام، ولكن هذا ليس هو الحال).
لا تنتمي إلى StackOverflow