Winform Control.Refresh - sinxronlangan kafolatlanganmi?

WinForms dasturini ishga tushirish Boshqarishni qayta boshlash usulini ishga tushirish MSDN da quyidagicha tavsiflanadi:

Hisobotni mijozning maydonini bekor qilish va uni darhol qayta-qayta tahrirlash uchun boshqaradi.

Men biriktirilgan displeyda kutilayotgan Control.OnPaint chaqiruvini yaratmaslik uchun Control.Refresh paydo bo'lmaganday, skanerlash signallari (samarali piksellar sonini o'zgartiruvchi) o'zgartirganda paydo bo'ladigan intervalgacha muammolarni tuzataman. Qo'shimcha ma'lumot olish uchun ilovani instrumentlashyapman, lekin agar bu aslida OnPaint-ni chaqirishga qaror qiladigan ish vaqti bo'lishi mumkin bo'lsa, u ekranni birdaniga bo'shatib qo'yganini aniqlash uchun qiziqarli.

Bu men uchun mantiqqa o'xshamaydi va men boshqa chekish qurolini topaman, deb o'ylayman, lekin men uni tasodifan tashqariga joylashtirib qo'yaman, buni kimdir boshqa yovvoyi tabiatda ko'rgan va buni ko'rib chiqish uchun ba'zi tavsiyalar mavjud.

1

1 javoblar

Yo'q, bu kafolatlangan emas. Boshqaruvning chizilgan ekrani bo'lmasa, u bo'yoq xabarini yoqmaydi.

Lekin yana bir bor ekranda tekshiruv tugagach, bo'yoq xabarlari yana yonadi.

Disk raskadrovka ma'lumotlarini bo'yashga harakat qilyapsizmi? Tekshiruv ekranda bo'lmasa, yangilanish chaqirganingizda nimani kutmoqdasiz?

1
qo'shib qo'ydi
@holtavolt Men uni faqat ishonch hosil qilish uchun sinab ko'rdim, lekin agar taymer ekstremal bo'lsa, taymer, bo'yoq hodisasidan farq qilmaydi. OnMove, albatta, lekin bo'yoq emas.
qo'shib qo'ydi muallif LarsTech, manba
@holtavolt Ha, qilaman va u OnPaintni yutmaydi. Nima bo'lishidan qat'iy nazar, siz uni bajarishga harakat qilyapsiz, ehtimol siz rasmdagi mantiqni qo'yish kerak emas.
qo'shib qo'ydi muallif LarsTech, manba
@holtavolt Sizning test maqsadlaringiz uchun men sizni "orqaga" shaklni ekranga ko'chirishingiz kerak deb o'ylamayman. O'zgartirishlarim: pastebin.com/qkw9gcvH .
qo'shib qo'ydi muallif LarsTech, manba
Rahmat - Buni sinab ko'rish va tekshirish uchun bir nechta eksperimentlarni ishlab chiqdim, ammo ular menga qarama-qarshi natijalar berdi. Men OnMove konsoliga yozadigan oddiy shaklni yaratdim va "Yangilash" ni o'chiradi. Siz tasvirlab beradigan bo'lsak, ariza ekranda yangilanadi (va keyingi OnPaint). Agar men uni ekstraditsiya qilsam (yuqoridagi chap va o'ng tugmachalarini bosib) - Qayta tiklash, formaning bir qismini ekranda yana ekranda to'xtatadi. Biroq, agar men Timer yaratganimda va u ekranning chap qismida o'ynaladigan formaning Joylashuvini o'zgartirsam, bajarish OnMove/OnPaint voqealarini qabul qilaman.
qo'shib qo'ydi muallif holtavolt, manba
OnMove-ni yangilang() bajarasizmi? Men uni o'chirib yuborishga sabab bo'lgan, hatto nazorat ekstremal bo'lsa ham.
qo'shib qo'ydi muallif holtavolt, manba
Biz boshqacha yo'l tutishimiz kerakmi? Bu har doim ham OnPaintni ishdan chiqaradi: pastebin.com/Jc6hnVef - Men bo'yoq hodisasi mantiqiga qo'shilaman.
qo'shib qo'ydi muallif holtavolt, manba
Ildiz sababi buyruqlar modelini amalga oshirish bilan chuqurroq ramka muammosi bo'lib chiqdi. Sizning dastlabki javobingiz bo'yoqning kafolatlanmaganligi to'g'ridir.
qo'shib qo'ydi muallif holtavolt, manba