ביטול אירוע CheckedChanged

VoidPointer

New member
ביטול אירוע CheckedChanged

בעצם זו שאלה די כללית על ביטול אירועים , ולא קלטתי איך לבצע את זה.. אני נתקלתי במקרה שיש לי checkbox ב Windows form . מה שאני רוצה , זה כשהמשתמש ינסה לסמן את ה checkbox , להקפיץ לו שאלה - משהו בסגנון "האם אתה בטוח" , אם כן - לסמן את ה checkbox , אם לא - לבטל את האירוע של הסימון . לא מצאתי משהו כמו BeforeChecked event או משהו דומה :) השאלה האם יש דרך לבטל אירוע , או שפשוט לעשות את זה בצורה המכוערת של סימון ה checkbox באמצעות הקוד במקרה שהמשתמש בוחר כן לסמן , או מחיקת הסימון אם המשתמש בחר לא לסמן . ( כי אז בכל מקרה הסימון יתבצע - אבל אני פשוט אמחק את הסימון אם המשתמש לא רוצה לסמן) בבקשה תגידו לי שיש דרך לבטל אירועים - זה נראה לי כמו משהו די בסיסי .. אם לא - נעשה עבודה מכוערת :) וחבל ..
 

eofek

New member
אני לא בטוח שלזה התכוונת

אבל בהנחה שה event של Check קופץ עם פרמטר e תמנסה לעשות
e.Cancel=true;​
אולי זה מה שאתה צריך...
 

VoidPointer

New member
הלוואי .. אבל

הבעיה שהפרמטר שמועבר במקרה זה הוא מסוג EventArgs ולא CancelEventArgs . וה cancel property זה רק של ה CancelEventArgs ...
 

gilad g

New member
אני חושב שאין לך ברירה...

אתה תצטרך לעשות את מה שהצעת - ביטול הסימון של ה-CheckBox. או שמצד שני, זה יכול לעבוד (שים לב שאני יורש מ-CheckBox):
using System.Windows.Forms; public class AreYouSureCheckBox : CheckBox { protected override void OnClick(EventArgs e) { if (MessageBox.Show(/* Insert messagebox params here */) == DialogResult.OK) { base.OnClick(e); } } }​
לא ממש בדקתי את זה - אתה מוזמן לנסות
 
למעלה