के साथ HTML संपादित करना मेरे पास HTML स्ट्रिंग्स के साथ डेटाग्रिडव्यू है। CellDoubleClick ईवेंट का उपयोग करके, मैं वेबब्रोसर नियंत्रण में HTML स्ट्रिंग प्रदर्शित कर रहा हूं।WYSIWYG संपादक
Form1 में
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
try
{
if (e.ColumnIndex != 0 && e.RowIndex != -1)
{
string s = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
this.f2 = new Form2(s);
f2.ShowDialog();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Form2 में
private IHTMLDocument2 doc;
string reply;
public Form2(string reply)
{
InitializeComponent();
this.reply = reply;
}
private void Form2_Load(object sender, EventArgs e)
{
webBrowser1.DocumentText = reply; <--- string from DataGridView
IHTMLTxtRange range = doc.selection.createRange() as IHTMLTxtRange;
range.pasteHTML(webBrowser1.DocumentText);
range.collapse(false);
range.select();
doc = webBrowser1.Document.DomDocument as IHTMLDocument2;
doc.designMode = "On";
}
उपरोक्त कोड का उपयोग करना, मैं सफलतापूर्वक एक प्लेन टेक्स्ट के रूप में एचटीएमएल स्ट्रिंग प्रदर्शित कर सकते हैं, हालांकि मैं इसे संपादित करने में असमर्थ हूँ। वैकल्पिक रूप से, यदि मैं इस कोड का उपयोग करता हूं:
private IHTMLDocument2 doc;
private void Form2_Load(object sender, EventArgs e)
{
webBrowser1.DocumentText = reply; <--- string from DataGridView
doc = webBrowser1.Document.DomDocument as IHTMLDocument2;
doc.designMode = "On";
IHTMLTxtRange range = doc.selection.createRange() as IHTMLTxtRange;
range.pasteHTML(webBrowser1.DocumentText);
range.collapse(false);
range.select();
}
यह एक खाली रूप होगा, लेकिन मैं इसे लिखने में सक्षम हूं।
मुझे लगता है कि इसे फॉर्म 2_लोड विधि में range.pasteHTML(webBrowser1.DocumentText);
के साथ करना है, लेकिन मुझे किसी भी अन्य विधि से अनजान है जो मुझे फॉर्म 2 खोलने पर DataGridView से HTML स्ट्रिंग प्रदर्शित करने की अनुमति देगा।
मैं उपयोगकर्ताओं को HTML स्ट्रिंग को सादे टेक्स्ट के रूप में संपादित करने में सक्षम होना चाहता हूं (जिसके बाद इसे वापस HTML में परिवर्तित किया जाएगा और डेटाग्रिडव्यू में प्रदर्शित किया जाएगा)।