DataGridView
इस के लिए एक कॉलम प्रकार है, DataGridViewLinkColumn
।
DataGridViewLinkColumn col = new DataGridViewLinkColumn();
col.DataPropertyName = "Contact";
col.Name = "Contact";
dataGridView1.Columns.Add(col);
तुम भी ऑटोजनरेटेड पाठ स्तंभ के संपर्क संपत्ति से आता है छुपाना चाहते हैं जाएगा:
आप इस कॉलम को मैन्युअल टाइप करें, जहां DataPropertyName
स्तंभ ग्रिड का डेटा स्रोत में करने के लिए बाध्य करने के लिए सेट DataBind करने की जरूरत है ग्रिड।
साथ ही, DataGridViewButtonColumn
के साथ आपको CellContentClick
ईवेंट का जवाब देकर उपयोगकर्ता इंटरैक्शन को संभालने की आवश्यकता है।
तो कक्ष मान कि सादा पाठ के लिए हाइपरलिंक आप पाठ बॉक्स सेल के साथ लिंक कोशिका प्रकार प्रतिस्थापित करने की आवश्यकता नहीं कर रहे हैं बदलने के लिए। उदाहरण में नीचे मैं DataBindingComplete
घटना के दौरान ऐसा करने के बाद:
void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
foreach (DataGridViewRow r in dataGridView1.Rows)
{
if (!System.Uri.IsWellFormedUriString(r.Cells["Contact"].Value.ToString(), UriKind.Absolute))
{
r.Cells["Contact"] = new DataGridViewTextBoxCell();
}
}
}
तुम भी एक DataGridViewLinkCell
को DataGridViewTextBoxCell
मैं इस दूसरे के बाद आप आवेदन करना होगा सुझाव है कि दूसरी दिशा से ऐसा कर सकते हैं, बदल रहा है कोई भी परिवर्तन जो प्रत्येक सेल के सभी लिंक पर लागू होता है।
यह लाभ है हालांकि आपको स्वत: उत्पन्न कॉलम को छिपाने की आवश्यकता नहीं होगी, इसलिए आपको सबसे अच्छा लगा सकता है।
void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
foreach (DataGridViewRow r in dataGridView1.Rows)
{
if (System.Uri.IsWellFormedUriString(r.Cells["Contact"].Value.ToString(), UriKind.Absolute))
{
r.Cells["Contact"] = new DataGridViewLinkCell();
// Note that if I want a different link colour for example it must go here
DataGridViewLinkCell c = r.Cells["Contact"] as DataGridViewLinkCell;
c.LinkColor = Color.Green;
}
}
}
स्रोत
2012-06-05 11:55:29
मैं अपने जवाब संपादित किया है, कैसे बेहतर करने के साथ ही इस सवाल का जवाब जहां आप पाठ स्तंभ रखने पर एक दूसरे भिन्नता की पेशकश (एक स्तंभ छुपा और DataPropertyName का उपयोग करके) अपने मामले में मेरी पहली विकल्प का उपयोग करने समझा। –