मैं एक रूप है, जहां मैं एक नेट ListView नियंत्रण करने के लिए कॉलम जोड़ में एक समस्या है, इस क्रम में:नेट ListView स्तंभ क्रम समस्या
A | B | C | D
कॉलम विज्ञापन के लिए प्रदर्शन सूचकांक 0 है -3, इसी क्रम में, फिर भी वे गलत क्रम में प्रदर्शित:
A | B | D | C
^-----^ these are switched at runtime
नोट: सब कुछ लगता है जैसे मैं इसे डिजाइन समय में चाहते हैं।
मुझे लगता है, लेकिन मुझे नहीं पता कि क्यों, ऐसा इसलिए है क्योंकि मैंने स्तंभ डी को जोड़ने के बाद सूची दृश्य में कॉलम सी जोड़ा था। मैंने इसे कॉलम संपादक संवाद में एक पायदान ऊपर ले जाया, प्रदर्शन सूचकांक को समायोजित किया, और Designer.cs फ़ाइल में निर्माण आदेश की जांच की, सब कुछ क्रम में एडी है, उस क्रम में।
फिर भी समस्या बनी रहती है।
यह भी ध्यान दें: यह केवल एक शीर्षक लेबल समस्या नहीं है, कॉलम उनके डेटा समेत चारों ओर बदल जाते हैं। डेटा को उस क्रम में जोड़ा जाता है जिसे मैं प्रदर्शित करता हूं, लेकिन अंतिम दो कॉलम बदल दिए जाते हैं।
मुझे यह जानने के लिए और क्या करना चाहिए कि मेरे कॉलम में से कोई एक गलत स्थिति में क्यों है?
मुझे समस्या का पता चला। किसी कारण से DisplayIndex प्रॉपर्टी जारी नहीं है, भले ही मैं इसे संवाद में सेट करता हूं।
अगर मैंने फॉर्म को पूरी तरह बंद कर दिया है, और इसे विजुअल स्टूडियो में फिर से खोल दिया है, तो यह चारों ओर स्थानांतरित हो गया। स्पष्ट रूप से उन गुणों को संवाद संपादक द्वारा "बदले" के रूप में नहीं पहचाना जाता है, और इस प्रकार सहेजने के तंत्र को मेरे लिए इसे सहेजने की परवाह नहीं है।
कोड कि कॉलम जोड़े, इस तरह था:
this.lvResult = new System.Windows.Forms.ListView();
this.colResultId = new System.Windows.Forms.ColumnHeader();
this.colResultTitle = new System.Windows.Forms.ColumnHeader();
this.colResultLanguage = new System.Windows.Forms.ColumnHeader();
this.colResultTags = new System.Windows.Forms.ColumnHeader();
//
// lvResult
//
this.lvResult.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lvResult.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.colResultId,
this.colResultTitle,
this.colResultLanguage,
this.colResultTags});
this.lvResult.FullRowSelect = true;
this.lvResult.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.lvResult.HideSelection = false;
this.lvResult.Location = new System.Drawing.Point(12, 6);
this.lvResult.Name = "lvResult";
this.lvResult.Size = new System.Drawing.Size(466, 117);
this.lvResult.TabIndex = 0;
this.lvResult.UseCompatibleStateImageBehavior = false;
this.lvResult.View = System.Windows.Forms.View.Details;
this.lvResult.SelectedIndexChanged += new System.EventHandler(this.lvResult_SelectedIndexChanged);
//
// colResultId
//
this.colResultId.Text = "#";
this.colResultId.Width = 35;
//
// colResultTitle
//
this.colResultTitle.Text = "Title";
this.colResultTitle.Width = 220;
//
// colResultTags
//
this.colResultTags.DisplayIndex = 2;
this.colResultTags.Text = "Tags";
this.colResultTags.Width = 100;
//
// colResultLanguage
//
this.colResultLanguage.Text = "Language";
जब मैं याद आ रही गुण सीधे फाइल में कहा, यह काम किया।
नहीं, डिफ़ॉल्ट आइटम को छोड़कर, फॉर्म के लिए .resx फ़ाइल पूरी तरह खाली है। –
एक और सुझाव जोड़ा गया ... स्ट्रॉ पर grasping। :) – Yoopergeek
यदि मैं इसे समझ नहीं पा रहा हूं, तो मैं इसे बाद में फिर से जोड़ दूंगा, लेकिन चूंकि यह अब के लिए शोस्टॉपर समस्या नहीं है, इसलिए मैं इसे रखूंगा, उम्मीद कर रहा हूं कि मैं (या यहां कोई) इसे समझने में मेरी सहायता कर सकता है, ताकि मैं भविष्य में इससे बच सकूं। –