如何复制Visual Studio当前行号

时间:2017-07-24 04:59:07

标签: c# visual-studio envdte

如何使用C#

复制/获取Visual Studio活动文档中的当前行号

1 个答案:

答案 0 :(得分:1)

首先,您需要添加引用" envDTE"和" envDTE80"为您的C#项目。

然后使用以下代码(我将其放入单击按钮事件中)将行号(和文件名)复制到剪贴板中。

    private void btnGetLineVS_Click(object sender, EventArgs e)
    {
        EnvDTE80.DTE2 dte2;
        dte2 = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE");
        dte2.MainWindow.Activate();
        int line = ((EnvDTE.TextSelection)dte2.ActiveDocument.Selection).ActivePoint.Line;

        //Show it to the user the way you like
        StringBuilder builder = new StringBuilder();
        builder.Append(dte2.ActiveDocument.FullName);//The file name
        builder.Append('\t');
        builder.Append(line);//The current line
        if (builder.Length > 0)
        {
            Clipboard.SetText(builder.ToString());
            MessageBox.Show("Copied to clipboard");
        }
        else
            MessageBox.Show("Nothing!");
    }

感谢Reder的answer我知道存在这种事情,我一直认为这样做,我们必须使用VSIX Visual Studio代码项目。