ㅅㅈ

공부·2022년 9월 16일
0
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        Dictionary<int, string[]> contentData;
        PointF[] labelPos;
        public Form1()
        {
            contentData = new Dictionary<int, string[]>();
            GenerateData();
            InitializeComponent();
        }

        void GenerateData()
        {
            labelPos = new PointF[]
            {
                new PointF(1.0f,0.0f),
                new PointF(1.0f,30.0f),
                new PointF(1.0f,60.0f),
                new PointF(1.0f,90.0f),
                new PointF(1.0f,120.0f)
            };

            contentData.Add(0, new string[] { "큰 글자^0", "작은글자^1", "마지막^0" });
            contentData.Add(1, new string[] { "큰 글자^0", "작은글자^1", "마지막^1" });
            contentData.Add(2, new string[] { "큰 글자^0", "작은글자^1", "마지막^0" });
            contentData.Add(3, new string[] { "큰 글자^0", "작은글자^1", "마지막^0" });
            contentData.Add(4, new string[] { "큰 글자^0", "작은글자^1", "마지막^0" });
        }

        private void tabPage1_Paint(object sender, PaintEventArgs e)
        {
            int id = 0, contentIndex = 0;
            string content = contentData[id][contentIndex];
            string contentNumber = "0";
            int index = 0;

            float stringSize = new float();
            Font[] drawFonts = new Font[]
            {
                new Font("Arial", 16), new Font("Arial", 13)
            };
            SolidBrush drawBrush = new SolidBrush(Color.Black);

            for (id = 0; id < contentData.Count; id++)
            {
                stringSize = 0;
                for (contentIndex = 0; contentIndex < contentData[id].Length; contentIndex++)
                {
                    stringSize += contentIndex == 0 ? 0f : e.Graphics.MeasureString(content, drawFonts[index]).Width;

                    content = contentData[id][contentIndex].Split('^')[0];
                    contentNumber = contentData[id][contentIndex].Split('^')[1];
                    index = int.Parse(contentNumber);

                    e.Graphics.DrawString(content, drawFonts[index], drawBrush, labelPos[id].X + stringSize, labelPos[id].Y);

                }
            }
        }
    }
}

profile
리액트

0개의 댓글