텍스트 상자에 html 요소가 포함 된 텍스트 상자가 있습니다. 각 텍스트는 별도의 텍스트 묶음으로 표시됩니다. 이제 각각의 요소에 대해 하나씩, 해당 요소의 왼쪽에 세로로 가운데에있는 그림 상자를 추가하고 싶습니다 (예제에서 div 내부의 p와 div는 우선해야하며 p는 무시해야합니다) .텍스트 상자에서 텍스트의 덩어리에 대해 수직으로 컨트롤 중심 맞추기
내가 지금까지 생각해 낸 코드는 분명히 Y 좌표가 올바르지 않기 때문에 뭔가 빠져 있습니다. 두 검은 얼룩이 두 pictureboxes 대표 아래 그림을 참조하십시오
그리고 여기하는 코드이다 :,
string str = textBox1.Text;
string pattern = "<(?<tag>div|p|h[1-6])>";
Regex r = new Regex(pattern);
Match m = r.Match(str);
int i = 1;
while (m.Success) {
string new_s = str.Substring(m.Index + 3);
string new_p = "</" + m.Groups["tag"].Value + ">";
Match m_end = Regex.Match(new_s, new_p);
if (m_end.Success) { // Corresponding end tag exists
Point start_p = textBox1.GetPositionFromCharIndex(m.Index);
Point end_p = textBox1.GetPositionFromCharIndex(m_end.Index);
double top = start_p.Y;
double bottom = end_p.Y;
int midpoint = (int)(top + bottom)/2;
PictureBox pictureBox = new PictureBox();
pictureBox.Name = "pictureBox" + i.ToString();
pictureBox.Location = new System.Drawing.Point(15, midpoint + 7);
pictureBox.Image = Image.FromFile("c:\\blob.png");
pictureBox.Size = new Size(15, 15);
pictureBox.SizeMode = PictureBoxSizeMode.Zoom;
this.Controls.Add(pictureBox);
m_end.Index.ToString());
}
i++;
m = r.Match(str, m_end.Index);
}
나는 또한 방정식에 textBox1.Font.Size을 추가하려고했지만 그건 도움이 안된다. 그리고 각 덩어리는 기술적으로 한 줄이기 때문에 줄 높이는 어렵습니다. 진행 방법에 대한 제안?
편집 : Point는 왼쪽 위 모서리를 기반으로하므로 Font.Size를 사용하여 아래쪽을 찾는 것이 합리적입니다. 그리고 그것은 첫 번째 얼룩에 대한 올바른 위치를 제공하는 것 같습니다.