/ / क्या पी / आह्वान का उपयोग किए बिना TVS_EX_DOUBLEBUFFER सेट करना संभव है? - सी #, विनफॉर्म, ट्रीव्यू

क्या पी / invoke का उपयोग किए बिना TVS_EX_DOUBLEBUFFER सेट करना संभव है? - सी #, Winforms, वृक्षदृश्य

मैं अपने ट्री व्यू में टिमटिमा को कम करने की कोशिश कर रहा हूंडबल बफरिंग का उपयोग करके नियंत्रण। यहां बताई गई सिफारिशों का उपयोग करने से काम करने लगता है, जो TVS_EX_DOUBLEBUFFER विस्तारित विंडो शैली सेट करता है: ट्रीव्यू झिलमिलाहट?

हालांकि, मैं बहुत पसंद नहीं हैउपयोगकर्ता पर अतिरिक्त निर्भरता। परियोजना के मोनो पर चलने के लिए सेट होने पर भी निर्भर करता है। P / Invoke का उपयोग किए बिना TVS_EX_DOUBLEBUFFER विस्तारित विंडो शैली को सेट करना किसी तरह संभव है?

मुझे उम्मीद थी कि मैं इसे करने के लिए CreateParams का उपयोग कर सकता हूं, लेकिन यह काम नहीं कर रहा है।

const int TVS_NOHSCROLL = 0x8000;
const int TVS_EX_DOUBLEBUFFER = 0x0004;

protected override CreateParams CreateParams
{
get
{
var parameters = base.CreateParams;
parameters.Style |= TVS_NOHSCROLL;
parameters.ExStyle |= TVS_EX_DOUBLEBUFFER;
return parameters;
}
}

TVS_NOHSCROLL सेटिंग प्रदर्शित करने के लिए हैCreateParams का उपयोग करके एक विंडो शैली जो काम करती है। प्रलेखन के अनुसार, आप विस्तारित विंडो शैलियों को सेट करने के लिए ExStyle का उपयोग कर सकते हैं, लेकिन दुर्भाग्य से यह ट्री व्यू के लिए काम नहीं करता है।

कोई विचार?

उत्तर:

जवाब के लिए 0 № 1

.NET विंडोज फॉर्म में डबल बफरिंग उसी नाम की संपत्ति द्वारा सेट की जा सकती है

yourControl.DoubleBuffered = true;

आप इसका उपयोग कर सकते हैं SetStyle अतिरिक्त शैलियों को सेट करने के लिए नियंत्रण की विधि।