private void wmpMusic_Enter(object sender, EventArgs e)
        {            wmpMusic.URL = @"E:/mp3/静静的.mp3";
            wmpMusic.Ctlcontrols.play();
            txtSearch.Text = Convert.ToString(lvSearch.SelectedItems[0].Tag);        
            
        }@"E:/mp3/静静的.mp3";
和Convert.ToString(lvSearch.SelectedItems[0].Tag);        
输出的值是相等的,但是@"E:/mp3/静静的.mp3";
可以播放音乐,但是Convert.ToString(lvSearch.SelectedItems[0].Tag);  
不可!这是全代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;namespace Music
{
    public partial class frmMain : Form
    {
        private DBOperation db = new DBOperation();
        private DataSet ds;
        private DataView dv;
        private string message = string.Empty;
        public frmMain()
        {
            InitializeComponent();
        }        private void frmMain_Load(object sender, EventArgs e)
        {
            ds = db.GetMusicInfo(ref message);
            if (ds.Tables.Count<=0)
            {
                MessageBox.Show(message);
                return;
            }
            dv = new DataView(ds.Tables[0]);
            lvSearch.Items.Clear();
            foreach (DataRow  row in dv.Table.Rows)
            {
                ListViewItem lvi = new ListViewItem();
                lvi.Text = row["music"].ToString();
                lvi.Tag = row["Url"].ToString();
                lvi.SubItems.AddRange(new string[] { row["singer"].ToString()});
                lvSearch.Items.Add(lvi);
            }
        }        private void wmpMusic_Enter(object sender, EventArgs e)
        {            wmpMusic.URL = Convert.ToString(lvSearch.SelectedItems[0].Tag);
            wmpMusic.Ctlcontrols.play();
            txtSearch.Text = Convert.ToString(lvSearch.SelectedItems[0].Tag);        
            
        }        private void btnSearch_Click(object sender, EventArgs e)
        {
            string filter = "";
            filter = string.Format("music='{0}' or singer='{1}'", txtSearch.Text.Trim(), txtSearch.Text.Trim());
            dv.RowFilter = filter;
            lvSearch.Items.Clear();
            foreach (DataRowView row in dv)
            {
                ListViewItem lvi = new ListViewItem();
                lvi.Text = row["music"].ToString();
                lvi.Tag = row["Url"].ToString();
                lvi.SubItems.AddRange(new string[]{row["singer"].ToString()});
                lvSearch.Items.Add(lvi);
            }
        }        private void lvSearch_SelectedIndexChanged(object sender, EventArgs e)
        {
            wmpMusic.URL = Convert.ToString(lvSearch.SelectedItems[0].Tag);
            wmpMusic.Ctlcontrols.play();
            txtSearch.Text = Convert.ToString(lvSearch.SelectedItems[0].Tag);
        }          }
}

解决方案 »

  1.   

    先把 lvSearch.SelectedItems[0].Tag 做字符串替换, / 替换为 \/ 看 
      

  2.   

    输出lvSearch.SelectedItems[0].Tag.ToString()看看是什么,检查下是不是转义字符的问题
      

  3.   

     txtSearch.Text = Convert.ToString(lvSearch.SelectedItems[0].Tag);
    输出值和字符串一模一样!
    但就不知道为什么?