The Afghanistan Cricket Board announced Gulbadin Naib would skipper the one-day side, Rashid Khan the Twenty20 team and Rahmat Shah the Test squad.
Naib replaces Asghar Afghan, and board chairperson Azizullah Fazli said the changes were a "long time investment and to compete in a better way".
But less than two months before the start of the World Cup in England and Wales, the move was criticised on social media by some players.
Former captain Mohammad Nabi tweeted the decision was "ill timed with World Cup just round the corner", saying the team had "gelled really well under Asghar".
"Being a senior member of the side and having seen the rise of Afghanistan Cricket, I don't think it is the right time to change the captain," said Nabi, who led Afghanistan in their first World Cup campaign four years ago.
Rashid Khan, the new Twenty20 skipper also sounded off.
"With all the respect to the Selection Committee, I strongly disagree with the decision as it is irresponsible & bias," he tweeted.
"As we have @cricketworldcup in front of us, Captain #MAsgharAfghan should remain as our team Captain."
Afghanistan plays Australia in their opening match of the World Cup in Bristol on June 1.
They are regarded as dark horses having beaten both Sri Lanka and Bangladesh in the Asia Cup last year, as well as forcing a tie with eventual champions India.