I wanted to see if I could control my robot with a PC and I wanted to know if there was a way to do it. I have already searched for a controller for the PC and didn't find anything.
Have a look on this project on GitHub https://github.com/BrianPeek/legoev3 It uses .NET libraries writen in C# to control and get status of EV3 robot.
There is a video wich explains step by step how to write your own remote control in C# WPF.
Your EV3 allows to send direct commands from the PC to the robot. It offers three communication protocols: USB (needs a wire), Bluetooth and Wifi (needs a dongle). You can start programs, control motors, read data from the sensors, play sound, change the colors of the LEDs, simulate buttom presses and so on. For file transfer you should use system commands, which have a different structure.
The communication is independent from the programming language, what counts are the sent and received data. If your favorite programming language supports the communication protocol, you can use it. You need not start from scratch, there exists code in different programming languages.
You find detailed information about direct commands in this blog: EV3DirectCommands
You can write programs with many languages (like Java, C#, Python). Those languages are capable of controlling your EV3 without the need to build and run a program directly on the EV3 brick.
The downside is that you must speak those languages. I'm not aware of independent controllers for the LEGO Mindstorms.
What do you want to achieve? Maybe there's another solution.
I've posted more info on this in this answer: https://bricks.stackexchange.com/a/8585/7324