Should be easy to improve upon though - it was a bit messy to reorganize the code to make it a bit more OO like, but now it should be a matter of improving the computer side algorithms at will, and everything should still work.
Without further ado : Tic Tac Toe Project, in vb 2005
Next: this is v1, but I do want to get some more challenging computer players - I'm thinking of building one that just follows simple rules (try to play where it can complete a line, and where it will get the most marks in a row for this play; if it can't win in this play and oponent is one spot from winning, play in that spot) and another learning player (stores all (maxed number?) the games it's been into, picks up the play that has the best average result), and a variant of this last one would pick a play targeting a difficulty level. (dificulty level would be directly associated with the average result of the plays chosen.).
Should be interesting to see how fast the pure learning player would reach an optimal play sequence (always leading to a tie or a win against an experienced player)