Two people were killed and five others injured in a shooting at a high school graduation ceremony in Virginia.
A man with four handguns fired into a crowd outside the ceremony for Huguenot High School in the state capital Richmond, police said.
Hundreds of people including students in graduation gowns ran for safety, witnesses said.
Police said they arrested a suspect, a 19-year-old man, who they said knew at least one of the victims.
Interim Richmond police chief Rick Edwards said one of the people who was killed was an 18-year-old male student who had just graduated, while the other was a 36-year-old man who was there for the graduation.
He did not confirm a report from Richmond TV station WWBT that the victims were father and son.
The suspect fled the scene on foot and was captured in possession of four handguns, three of which may have been fired, police said.
As well as five injured by gunfire, who sustained non-life-threatening injuries, two people suffered falls and a nine-year old girl “was hit by a car during the melee”, he continued.
The shooting at around 5.15pm on Tuesday took place in Monroe Park after the ceremony had ended at the Virginia Commonwealth University campus.
“Is nothing sacred any longer?” Richmond Mayor Levar Stoney asked at a news conference.
“A child should be able to go their graduation and walk at their graduation and enjoy the accomplishment with their friends and families,” he said, calling the shooting a “selfish act”.
School board member Jonathan Young told WWBT that graduates and other attendees were exiting the theatre when they heard about 20 gunshots in rapid succession.
“That prompted, as you would expect, hundreds of persons in an effort to flee the gunfire to return to the building,” Mr Young said.
“It materialised in a stampede,” he said.
The school district said a different graduation scheduled for later on Tuesday had been cancelled “out of an abundance of caution” and that schools would be closed on Wednesday.