@MuhammadWaqasBhati очень хорошо поинтересовался рамкой.
Я использовал addSublayer, чтобы нарисовать путь, который я создал на экране. Моя ошибка была в том, что я устанавливал значения в функции draw () и добавлял CAShapeLayer с помощью addSublayer, но рамка для кнопки не была установлена.
Даже если нарисованный слой является подслоем кнопки, он отображается в координатах и размерах, предоставленных для слоя, без какого-либо отношения к рамке его «родительской» кнопки.
Кадр кнопки может быть (0, 0, 0, 0) или (0, 0, 100, 100), а изображение, нарисованное в addSublayer, все еще может иметь значение (250, 200, 75, 80), так что видимое изображение будет в одной точке экрана, но фактическая кнопка находится в несвязанном месте с тем, что видно в ее подслое.
Набор SelectionColor
перед добавлением, что-то как:
int line = 0;
foreach (string file in myfiles)
{
// Whatever method you want to choose a color, here
// I'm just alternating between red and blue
richTextBox1.SelectionColor =
line % 2 == 0 ? Color.Red : Color.Blue;
// AppendText is better than rtb.Text += ...
richTextBox1.AppendText(file + "\r\n");
line++;
}