There is one additional problem related to the file path.
Actually, there are no situations when hard-coding of the file name can be useful. The problem with this code is this: it assumes that the working directory at the moment of opening the file will be the one where your text file is located. This is wrong: the user can run any application starting from any directory. In this case, the file will not be found.
If the file is read-only, it's possible that you put it in your output directory, the same one where your executable file is located. So, you need to calculate this directory. Here is how:
string exeDirectory = System.IO.Path.GetDirectoryName(
Another option is to add the file to the project but embed it in the executable file as a resource. In this case, you don't have to read anything. Visual Studio will create auto-generated source file with the static string property already containing the content of the text file. The file will not be copied to output directory as executable file contains it content.