2013-09-03 3 views

답변

2

텍스트 상자를 TextChanged 이벤트를 사용하여 텍스트를 측정하고 컨트롤의 너비를 설정할 수 있습니다. 당신은 너무 TextBox의 폭은 FlowLayoutPanel의 클라이언트 폭보다 넓게 안된다는 명백한 한계가있다

public Form1() { 
    InitializeComponent(); 

    textBox1.MinimumSize = new Size(32, 0); 
    textBox2.MinimumSize = new Size(32, 0); 
    textBox3.MinimumSize = new Size(32, 0); 

    textBox1.TextChanged += textBox_TextChanged; 
    textBox2.TextChanged += textBox_TextChanged; 
    textBox3.TextChanged += textBox_TextChanged; 
} 

void textBox_TextChanged(object sender, EventArgs e) { 
    TextBox tb = sender as TextBox; 
    if (tb != null) { 
    tb.Width = TextRenderer.MeasureText(tb.Text, tb.Font, Size.Empty, 
          TextFormatFlags.TextBoxControl).Width + 8; 
    } 
} 

: 나는 최종 사용자가 실용적이 예에서 (32)의 최소 폭에 추가 그것을 설명해야합니다. 폭에 대한 + 8 등 패딩 및 테두리의 여분의 공간을 차지하기 위해 단지 퍼지 숫자입니다

1

의 경우 텍스트 상자 GET의 넓은 단지

TextBox.MultiLine to true 그렇지 true로 설정 FlowLayoutPanel 년대 후 레이아웃 패널과 비교하여 텍스트 상자의 높이를 확인하는 것을 잊지 마십시오.