Here is what I do instead of looking to the path of the image:
Add that image as a resource in the project:
Then add a property in a object class to house the get/set of that image. (optional)
then you can call the class that the image is get/set in and then the image name that will collect it.
that should change this:
this.BackgroundImage = new Bitmap(@"..\pic\background.jpg");.
to this:
this.BackgroundImage = new Bitmap([...appname].Properties.Resources.[imagename]).
[...appname] should be replaced with the main namespace of your applicationname.
[imagename] should be replaced with the name you assigned to that image when you added to the resoureces.
I had the same problem that I fixed but if you use the application on a different machine then that path could be different if your pulling from an in general file and avoids looking into the bin file statically.
Hope that helps.