2017-07-24 7 views
0

Comment copier/obtenir le numéro de ligne dans le document actif de Visual Studio en utilisant C#Comment copier le numéro de ligne en cours de Visual Studio

+0

Voir https://stackoverflow.com/questions/32502847/is-there-any-extension-for-vs-copying-code-position –

+0

@Sergey Vlasov: Oh, désolé, je ne savais pas que cette question a été répondu - j'avais cherché mais je n'ai pas pu trouver. – 123iamking

Répondre

1

Tout d'abord, vous devez ajouter des références « EnvDTE » et « EnvDTE80 » pour votre projet C#

Ensuite, utilisez le code suivant (je l'ai mis dans l'événement bouton de clic dans mon cas) pour copier le numéro de ligne (et le nom du fichier) dans le presse-papiers.

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!"); 
    } 

Merci à ce answer Reder que je connais ce genre de chose existe, j'ai toujours pensé à cela, nous devons utiliser VSIX projet de code Visual Studio.