开发环境:C# 2008 WinForm
情况说明:
在窗体上有一个textBox控件:textBox1
要实现的目标:
从IE或其他浏览器拖动一个连接过来后获取这个连接地址。
代码如下: private void textBox1_DragEnter(object sender, DragEventArgs e)
{
if ((e.Data.GetDataPresent(DataFormats.Html, false)) || (e.Data.GetDataPresent(DataFormats.Rtf, false)) || (e.Data.GetDataPresent(DataFormats.Text, false)))
{
CanDrog = true;
e.Effect = DragDropEffects.Copy;
}
else
e.Effect = DragDropEffects.None;
} private void textBox1_DragDrop(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.None;
string strTitle = "";
string strUrl = "";
string strCont = "";
if (CanDrog)
{
if ((e.Data.GetDataPresent(DataFormats.Html, false)) || (e.Data.GetDataPresent(DataFormats.Rtf, false)))
{
Clipboard.SetDataObject(e.Data); string strMFP = e.Data.GetData(DataFormats.Html, true).ToString(); System.Text.Encoding.Default.GetBytes(strMFP); System.Text.Encoding gb2312 = System.Text.Encoding.GetEncoding("GB2312"); //byte[] encodedBytes = gb2312.GetBytes(strMFP); byte[] encodedBytes = System.Text.Encoding.Default.GetBytes(strMFP); strMFP = System.Text.Encoding.UTF8.GetString(encodedBytes); Regex regx1 = new Regex(@"<TITLE.*>.*TITLE>", RegexOptions.IgnoreCase); Match m = regx1.Match(strMFP); if (m.Success)
{ strTitle = Regex.Replace(m.Value, "<[^>]*>", "").Replace("TITLE>", "");
} regx1 = new Regex(@"SourceURL:.*", RegexOptions.IgnoreCase);
m = regx1.Match(strMFP); if (m.Success)
strUrl = m.Value.Substring(10); }
strCont = e.Data.GetData(DataFormats.Text, true).ToString();
} }
遇到的问题:
以网站http://www.gz2010.cn/special/0078000L/newscenter.html为例,当我拖动下面这条新闻的时候:
借网络媒体加强亚运宣传 记者赞场馆赛后利用
我跟踪到的结果:
借网络媒体加强亚运宣�?记者赞场馆赛后利用
这里面出现了乱码 �?
请问如何处理?谢谢!
情况说明:
在窗体上有一个textBox控件:textBox1
要实现的目标:
从IE或其他浏览器拖动一个连接过来后获取这个连接地址。
代码如下: private void textBox1_DragEnter(object sender, DragEventArgs e)
{
if ((e.Data.GetDataPresent(DataFormats.Html, false)) || (e.Data.GetDataPresent(DataFormats.Rtf, false)) || (e.Data.GetDataPresent(DataFormats.Text, false)))
{
CanDrog = true;
e.Effect = DragDropEffects.Copy;
}
else
e.Effect = DragDropEffects.None;
} private void textBox1_DragDrop(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.None;
string strTitle = "";
string strUrl = "";
string strCont = "";
if (CanDrog)
{
if ((e.Data.GetDataPresent(DataFormats.Html, false)) || (e.Data.GetDataPresent(DataFormats.Rtf, false)))
{
Clipboard.SetDataObject(e.Data); string strMFP = e.Data.GetData(DataFormats.Html, true).ToString(); System.Text.Encoding.Default.GetBytes(strMFP); System.Text.Encoding gb2312 = System.Text.Encoding.GetEncoding("GB2312"); //byte[] encodedBytes = gb2312.GetBytes(strMFP); byte[] encodedBytes = System.Text.Encoding.Default.GetBytes(strMFP); strMFP = System.Text.Encoding.UTF8.GetString(encodedBytes); Regex regx1 = new Regex(@"<TITLE.*>.*TITLE>", RegexOptions.IgnoreCase); Match m = regx1.Match(strMFP); if (m.Success)
{ strTitle = Regex.Replace(m.Value, "<[^>]*>", "").Replace("TITLE>", "");
} regx1 = new Regex(@"SourceURL:.*", RegexOptions.IgnoreCase);
m = regx1.Match(strMFP); if (m.Success)
strUrl = m.Value.Substring(10); }
strCont = e.Data.GetData(DataFormats.Text, true).ToString();
} }
遇到的问题:
以网站http://www.gz2010.cn/special/0078000L/newscenter.html为例,当我拖动下面这条新闻的时候:
借网络媒体加强亚运宣传 记者赞场馆赛后利用
我跟踪到的结果:
借网络媒体加强亚运宣�?记者赞场馆赛后利用
这里面出现了乱码 �?
请问如何处理?谢谢!
e.Data.GetData("Html Format") as MemoryStream;
vMemoryStream.Position = 0;
byte[] vBytes = new byte[vMemoryStream.Length];
vMemoryStream.Read(vBytes, 0, (int)vMemoryStream.Length);
textBox1.Text = Encoding.UTF8.GetString(vBytes);