使用Visual Studio宏获取当前行号?

时间:2014-01-02 20:40:38

标签: vb.net visual-studio macros visual-studio-macros

所以我查看了其他用户的问题,但未能找到具体的我正在寻找的内容。我想要做的很简单。我正在编写一个Visual Studio宏,并试图获取TextSelection所在的当前行的编号。真的,我的问题非常简单。如何获得当前选择的行数?任何帮助是极大的赞赏!

对于任何阅读此内容的人来说都很清楚,我正在使用 VB 并正在编写 Visual Studio Macro

2 个答案:

答案 0 :(得分:0)

请记住,TextSelection可以跨越多行,因此可能存在一系列行。

查看TextSelection的文档(即我没有对此进行过测试),您应该能够做到这样的事情:

Dim mySelection As EnvDTE.TextSelection = ' however you get the active selection
mySelection.TopPoint.Line ' gets the line of the top of the selection

如果你想根据光标的位置(选择的顶部或底部)得到它,你可以试试这个:

mySelection.ActivePoint.Line

看起来TextRanges也可能有用,但听起来它只适用于盒子选择,所以它可能不适用。

mySelection.TextRanges.Item(0).Line

答案 1 :(得分:-1)

可能有一种比这更好的方法,但我想到的第一种方式就是这样。

首先,确保文件中的最后一行是“xyz”

 Dim linenumber As Integer = 1
 dim mystring as string = ""

 Using myfile As New IO.StreamReader("C:/myfile")

         mystring = myfile.readline()
         while mystring <> "xyz"

              linenumber += 1
              messagebox.Show(mystring & " is on line " & linenumber)
         end while
 End Using

所以如果C:/ myfile的内容看起来像这样......

  

     

     

然后你会得到输出....

“我在第1行”

“爱在第2行”

“馅饼在第3行”