के साथ सूचीदृश्य क्या सूचीदृश्य के लिए कॉपी-पेस्ट जोड़ने का कोई आसान तरीका है, या क्या मुझे इसके बजाय DataGridView पर स्विच करना चाहिए?कॉपी-पेस्ट
मेरा आवेदन एक एड्रेस बुक की तरह है, इसमें ईमेल, नंबर इत्यादि हैं जहां कॉपी पेस्ट उपयोगी होगा।
के साथ सूचीदृश्य क्या सूचीदृश्य के लिए कॉपी-पेस्ट जोड़ने का कोई आसान तरीका है, या क्या मुझे इसके बजाय DataGridView पर स्विच करना चाहिए?कॉपी-पेस्ट
मेरा आवेदन एक एड्रेस बुक की तरह है, इसमें ईमेल, नंबर इत्यादि हैं जहां कॉपी पेस्ट उपयोगी होगा।
यह मैनुअल कॉपी और पेस्ट, बस KeyDown
के लिए एक ईवेंट हैंडलर में डाल करने के लिए बहुत मुश्किल नहीं है (या शायद यह KeyPress
याद कर सकते हैं नहीं लेकिन काफी यकीन है कि यह उनमें से एक है) और जाँच e.KeyCode
को देखकर क्या कुंजी दबाने और जांचें कि e.Control
सत्य है या नहीं। यदि यह x
में से एक है, c
या v
क्लिपबोर्ड से लिखने/पढ़ने के लिए बस Clipboard.SetText
या Clipboard.GetText
पर कॉल करें।
Clipboard
कक्षा के एमएसडीएन दस्तावेज के लिए here देखें।
आप इसे पूरा करने के लिए ListView पर कॉपी और पेस्ट के साथ एक संदर्भ मेनू जोड़ सकते हैं।
नीचे दिए गए उदाहरण क्लिपबोर्ड आदेश की एक प्रति के रूप में Ctrl-C, और प्रतियां सभी चयनित पंक्तियों से दूसरे स्तंभ के मूल्य संभालता है:
private void resultsListView_KeyUp(object sender, KeyEventArgs e)
{
if (sender != resultsListView) return;
if (e.Control && e.KeyCode == Keys.C)
CopySelectedValuesToClipboard();
}
private void CopySelectedValuesToClipboard()
{
var builder = new StringBuilder();
foreach (ListViewItem item in resultsListView.SelectedItems)
builder.AppendLine(item.SubItems[1].Text);
Clipboard.SetText(builder.ToString());
}
संदर्भ:
अच्छा समाधान, मुझे बस 'कीडाउन' घटना के साथ ऐसा करना पड़ा। 'कीपअप' काम नहीं कर सका, क्योंकि 'सी' दबाते समय यह सूची बॉक्स में पहली प्रविष्टि को स्वत: चयन कर रहा था, जो' सी' से शुरू हुआ था, जो मेरे मल्टीइलेक्शन को केवल एक ही में प्रस्तुत करता था। – derFunk
मेरी आवश्यकता क्लिपबोर्ड पर धारावाहिक संख्याओं की एक सूची की प्रतिलिपि बनाने के लिए एक बटन जोड़ना था। मैं सामान्य फैशन में बटन जोड़ा और फिर निम्न विधि कहा:
private void btnClipboard_Click(object sender, EventArgs e)
{
String clipText = string.Empty;
foreach (ListViewItem item in lstSerials.Items)
{
clipText += item.SubItems[0].Text;
clipText += Environment.NewLine;
}
if (!String.IsNullOrEmpty(clipText))
{
Clipboard.SetText(clipText);
}
}
उस के साथ समस्या मैं केवल, पूरी पंक्ति कॉपी करने के लिए प्रबंधन जब तक कि वहाँ है एक सेल के चयन के लिए कुछ साफ चाल है। – Zubirg
@Zubirg: हाँ, मैं भूल गया था कि आपके पास 'ListView' में वास्तव में सेल्स नहीं हैं, तो' DataGridView' पर स्विच करना आसान हो सकता है। हालांकि, अगर आप 'लिस्ट व्यू' के साथ रहना चाहते हैं तो आप उस पर क्लिक करके 'क्लिक' और 'माउसडाउन' ईवेंट को संभालने की तरह कुछ कर सकते हैं, यह गणना करने के लिए कि सबिटैम पर क्लिक किया गया था और उसके बाद उस उपनिवेश के 'बैककोलर' को चुनने के लिए इसे चुनने के लिए और फिर आप उस सबिटिम के लिए कॉपी और पेस्ट संभाल सकते हैं। आपको आइटम पर 'UseItemStyleForSubItems = false;' सेट करना सुनिश्चित करना होगा, अन्यथा रंग उप-उपनामों पर नहीं दिखाए जाएंगे। –