How it Works!
An algorithm called Backtracking is used to solve this type of problems.
When the user clicks the Solve button, the values inserted by the user are stored in a 2D array. Then the program checks if the sudoku is valid. If it is invalid, a message appears saying 'Given Sudoku is invalid'. If it is valid the Recursion algorithm is called.
Now the program starts from the top-leftmost free element(i.e having value 0) and puts value '1' in it and checks if it does break the rules of Sudoku. If it breaks the rules then it increments the value byone and checks again until a valid value is assigned to that block.
After assigning a value to a block, the next block is given focus and goes through the same steps. If for a certain block, none of the value(i.e from '1' to '9') is valid then it goes back to the previous block and increments its value by one. This method of going back to the previous block is called as Backtracking.
If the value of top-leftmost free element exceeds '9', then the given problem is not Solvable and a message regarding the same is displayed. You can find the source code HERE.