C # كيف يمكنني التحقق لمعرفة ما إذا كان يتم التحقق من مربع على شكل آخر؟

StackOverflow https://stackoverflow.com/questions/1410923

  •  05-07-2019
  •  | 
  •  

سؤال

وأنا باستخدام C # وأود أن تحقق لمعرفة ما إذا كان يتم فحص مربع اختيار في النموذج الرئيسي وإذا كان الأمر كذلك تشغيل بعض التعليمات البرمجية، والمشكلة هي أنا في ملف فئة (ملف مع أي شكل، غير ملف فئة الصحيح؟). ما هو أسهل طريقة للقيام بذلك؟

والشكر جيمي

هل كانت مفيدة؟

المحلول

والخيار الأفضل هو إنشاء خاصية boolean على النموذج الذي يعرض قيمة Checked من CheckBox.

public bool OptionSelected
{
    get { return checkBox.Checked; }
    set { checkBox.Checked = value; } // the set is optional
}

نصائح أخرى

وتحتاج إشارة إلى شكل، وشكل له لفضح مربع (أو الممتلكات التي يتشاور مربع).

وليس هناك فرق بين البرمجة UI والبرمجة غير UI في هذا الصدد. كيف تسأل عن الملكية Name مثيل Person من فئة مختلفة؟ كنت الحصول على مرجع إلى مثيل، وأسأل عن الملكية ذات الصلة.

وهكذا تحتاج بالتأكيد إشارة إلى النموذج، ثم انها واحدة من:

bool checked = form.IsAdultCheckbox.Checked;
bool checked = form.IsAdult; 

و(أين الممتلكات IsAdult سيعود someCheckbox.Checked).

ويمكن أن تكون أسماء الملكية الفعلية الخطأ هنا (على سبيل المثال Checked قد لا ترجع bool)، ولكن آمل أن تحصل على هذه الفكرة.

ويمكنك تحديد واجهة مع خاصية، فقد شكل تنفيذ واجهة والعودة صحيح إذا تم تحديد خانة الاختيار، وتمرير مثيل من هذه الواجهة لصفك؟

وعلى سبيل المثال:

interface IMyFormFlag
{
    bool IsChecked { get; }
}

public class MyForm : Form, IMyFormFlag
{
    CheckBox chkMyFlag;

    bool IsChecked { get { return chkMyFlag.Checked; } }
}

public class MyObject
{
    public void DoSomethingImportant(IMyFormFlag formFlag)
    {
        if (formFlag.IsChecked)
        {
            // do something here
        }
    }
}

وشخصيا، أنا لا أحب استخدام مجموعة أو الحصول عليها. أنا فعلت هذا من هذا القبيل:

if (checkBox.IsChecked.Equals(true))
{
//insert code here
}

ويمكنك استخدام هذا أنه يعمل بشكل جيد بالنسبة لي

    if (Convert.ToBoolean(CheckBox1.IsChecked))
      {
         MessageBox.Show("true");
      }
    else
       {
         MessageBox.Show("false"); 
       }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top