में क्लिक स्तंभ निर्धारित मैं स्तंभ सी #ListView
में एक ListView में क्लिक मैं How to determine the clicked column index in a Listview से कुछ नमूना कोड है, लेकिन मुझे यकीन है कि मैं इसे कैसे लागू करना चाहिए नहीं कर रहा हूँ प्राप्त करने की आवश्यकता।
में क्लिक स्तंभ निर्धारित मैं स्तंभ सी #ListView
में एक ListView में क्लिक मैं How to determine the clicked column index in a Listview से कुछ नमूना कोड है, लेकिन मुझे यकीन है कि मैं इसे कैसे लागू करना चाहिए नहीं कर रहा हूँ प्राप्त करने की आवश्यकता।
ListView
नियंत्रण में HitTest
विधि है। आप इसे माउस क्लिक इवेंट के एक्स- और वाई-निर्देशांक देते हैं, और यह आपको एक ऑब्जेक्ट देता है जो आपको उस बिंदु पर पंक्ति (सूची दृश्य आइटम) और कॉलम (सूची दृश्य उप-समूह) बताता है।
यह वीबीएनईटी कोड है, लेकिन वस्तुओं को वही होना चाहिए।
Private LVUsersLastHit As Point
Private Sub lvUsers_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lvUsers.MouseUp
Me.LVUsersLastHit = e.Location
End Sub
Private Sub LvUsers_Doubleclick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lvUsers.DoubleClick
Dim HTI As ListViewHitTestInfo = Me.lvUsers.HitTest(Me.LVUsersLastHit)
If HTI.Item Is Nothing OrElse HTI.SubItem Is Nothing Then Exit Sub 'nothing was dblclicked
MsgBox("doubleClicked the " & HTI.Item.ToString & " Item on the " & HTI.SubItem.ToString & " sub Item")
End Sub
यदि आप कॉलम (सिंगल) क्लिक करना चाहते हैं तो कॉलमक्लिक इवेंट का उपयोग करें। उपर्युक्त कोड से मैं कल्पना कर सकता हूं कि आप सबटाइम सरणी आइटम से सबटाइम प्राप्त कर सकते हैं, फिर सूचीदृश्य के कॉलम से संबंधित इंडेक्स किए गए आइटम को कॉलमहेडर ऑब्जेक्ट को पुनर्प्राप्त करने के लिए प्राप्त करें जो कि dblclicked था (रन टाइम पर कॉलम री-ऑर्डरिंग के बावजूद) – Anthony
जीज़, हर कोई कोड पोस्ट करने के लिए बहुत आलसी है। प्रक्रिया के लिए तीन कदम हैं:
Control.MousePosition
का उपयोग करके माउस स्थिति प्राप्त करें और ग्राहक निर्देशांक में कनवर्ट करें।HitTest
फ़ंक्शन पर कॉल करें। यह वास्तविक कॉलम संख्या को छोड़कर बहुत सारी जानकारी के साथ एक ऑब्जेक्ट देता है ...IndexOf
का उपयोग करके सबिटैम्स सरणी खोजें।कोड यह रहा:
private void listViewMasterVolt_DoubleClick(object sender, EventArgs e)
{
Point mousePosition = myListView.PointToClient(Control.MousePosition);
ListViewHitTestInfo hit = myListView.HitTest(mousePosition);
int columnindex = hit.Item.SubItems.IndexOf(hit.SubItem);
}
यदि आप इसे काम करने के लिए नहीं प्राप्त कर सकते हैं तो 'माउसडाउन' ईवेंट में 'ई। स्थान' का उपयोग करके दो अंतिम पंक्तियों को कोड करें! – TaW
यदि आपके पास पहले कॉलम में एक चेकबॉक्स है ('ListView.CheckBoxes = true',' FullRowSelect = true') तो आप 'if (mousePosition.X> = 20) {... टॉगल चेकबॉक्स का उपयोग करना चाहेंगे ...} ' – Roland
e.Column वास्तव में सूचकांक रखती
private void lv_ColumnClick(object sender, ColumnClickEventArgs e)
{
Int32 colIndex = Convert.ToInt32(e.Column.ToString());
lv.Columns[colIndex].Text = "new text";
}
'कॉलमक्लिक' कॉलम __headers__ पर क्लिक करने के लिए केवल मान्य है – TaW
हाय टिम ... जवाब देने के लिए धन्यवाद ... तुम मुझे कोड प्रदान करें सकते हैं – Sathish
सतीश - यह कोड की एक पंक्ति है; इसमें सूची देखने के लिए एक कॉल है। हिटटेस्ट; आपको माउस क्लिक के एक्स और वाई निर्देशांक प्रदान करने की आवश्यकता होगी। –
कोड की एक पंक्ति लिखना मुश्किल नहीं होना चाहिए, esp। टिम प्रदान की युक्तियों के साथ। – IAbstract