네이버 지식IN에서 질문 중에 TextBox의 글자를 버튼이 클릭되었을때는

대문자로 아닐때는 원래대로 출력되는 방법을 질문 받은적 있습니다.

그래서 답변용으로 작성하고 블로그에도 남겨봅니다.


private bool isUpper = false;
private void button1_Click(object sender, EventArgs e)
{
    if (!isUpper)
    {
        button1.Text = "SHIFT";
    }
    else if (isUpper)
    {
        button1.Text = "shift";
    }
    isUpper = !isUpper;
}
 
private void textBox1_TextChanged(object sender, EventArgs e)
{
    string upper = textBox1.Text;
    string complete = "";
    int num = textBox1.SelectionStart - 1;
 
    if (isUpper)
    {
        for (int i = 0; i < upper.Length; i++)
        {
            if (i == num)
            {
                complete += upper[i].ToString().ToUpper();
            }
            else
            {
                complete += upper[i].ToString();
            }
        }
        textBox1.Text = complete;
        textBox1.Select(num+1, 0);
    }
}
Posted by 아르다