728x90
728x90
SMALL
1. 소스
/// <summary>
/// 주어진 TextBox 컨트롤에 수직스크롤바가 있는지의 여부를 구한다.
/// </summary>
/// <param name="txt">TextBox 컨트롤</param>
/// <returns>
/// - true : 수직스크롤바가 있다.
/// - false : 수직스크롤바가 없다.
/// </returns>
bool ExistsVScroll(TextBox txt)
{
try
{
StringBuilder sb = new StringBuilder(txt.Text);
string lastline = txt.Lines[txt.Lines.Count() - 1];
SizeF size;
using (Graphics g = Graphics.FromHwnd(txt.Handle))
{
if (string.IsNullOrWhiteSpace(lastline))
sb.Append("1");
size = g.MeasureString(sb.ToString(), txt.Font);
}
if (size.Height > txt.Height)
return true;
}
catch (Exception ex)
{
KLog.Write(ex.ToString());
}
return false;
}
반응형
2. 사용예제
텍스트박스의 내용이 정해준 줄수를 넘으면 스크롤바를 생성하도록 한다.
private void TXT_MEMO_TextChanged(object sender, EventArgs e)
{
try
{
if (TXT_MEMO.Lines.Count() < 1)
return;
int cursor = TXT_MEMO.SelectionStart;
if (FuncsOfCtrl.ExistsVScroll(TXT_MEMO))
TXT_MEMO.ScrollBars = ScrollBars.Vertical;
else
TXT_MEMO.ScrollBars = ScrollBars.None;
TXT_MEMO.Select(cursor, 0);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
728x90
728x90
LIST
'유용한 정보' 카테고리의 다른 글
[C#] DataGridView 의 데이터 검색하기 (0) | 2025.04.16 |
---|---|
[C#] DataGridView에서 행이 비어있는지 체크 (0) | 2025.04.16 |
[C#] 임의의 컨트롤을 사용하여 폼을 이동하자 (0) | 2025.04.16 |
[C#] 문자입력컨트롤에 워터마크 지원 (0) | 2025.04.16 |
[C#] 파일 오픈 및 읽기/쓰기 (0) | 2025.04.15 |