У меня есть основная форма и несколько флажков на ней. Когда я нажимаю один из флажков, я отображаю дочернюю форму, содержащую информацию, относящуюся к выбранному флажку. Проблема в том, что дочерняя форма появляется очень далеко от нажатого CheckBox, хотя я установил для StartPosition дочерней формы значение Manual и установил для формы Location значение (CheckBox.Location.X + 20, CheckBox.Location.Y)





CheckBox.Location относится к форме, в которой вы находитесь. Верхняя левая угловая точка клиентской области вашей формы - 0,0, и все элементы управления на ней расположены относительно этой точки.
Вам нужен способ преобразования относительного положения элементов управления в положение на экране, который предоставляется PointToScreen.
Предполагая, что ваша подформа называется frmSubForm, вы должны использовать следующее:
frmSubForm.Location = this.PointToScreen(new Point(CheckBox.Location.X + 20, CheckBox.Location.Y));