728x90
반응형
728x170
■ TextBox 클래스에서 탭 키를 누른 경우 탭 키 대신 공백 문자를 추가하는 방법을 보여준다.
▶ 예제 코드 (C#)
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
/// <summary>
/// 텍스트 박스
/// </summary>
private TextBox textBox;
/// <summary>
/// 탭 공백 수
/// </summary>
private int tabSpaceCount = 4;
#region 프리뷰 키 다운시 처리하기 - OnPreviewKeyDown(e)
/// <summary>
/// 프리뷰 키 다운시 처리하기
/// </summary>
/// <param name="e">이벤트 인자</param>
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
base.OnPreviewKeyDown(e);
if(e.Source == this.textBox && e.Key == Key.Tab)
{
string insert = new string(' ', this.tabSpaceCount);
int characterIndex = this.textBox.SelectionStart;
int lineIndex = this.textBox.GetLineIndexFromCharacterIndex(characterIndex);
if(lineIndex != -1)
{
int columnIndex = characterIndex - this.textBox.GetCharacterIndexFromLineIndex(lineIndex);
insert = new string(' ', this.tabSpaceCount - columnIndex % this.tabSpaceCount);
}
this.textBox.SelectedText = insert;
this.textBox.CaretIndex = this.textBox.SelectionStart + this.textBox.SelectionLength;
e.Handled = true;
}
}
#endregion
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] x:Static 엘리먼트 : SystemParameters 클래스의 CaptionHeight 정적 속성 값 사용하기 (0) | 2014.01.10 |
---|---|
[C#/WPF] x:Static 태그 확장 : SystemParameters 클래스의 CaptionHeight 정적 속성 값 사용하기 (0) | 2014.01.10 |
[C#/WPF] XAML 속성성 값 설정시 태그 확장 적용 방지하기 (0) | 2014.01.10 |
[C#/WPF] x:Key 속성 사용하기 (0) | 2014.01.10 |
[C#/WPF] XAML 속성 값 설정하기 (0) | 2014.01.10 |
[C#/WPF] TextBox 클래스 : 현재 열 구하기 (0) | 2014.01.10 |
[C#/WPF] TextBox 클래스 : 현재 줄 구하기 (0) | 2014.01.10 |
[C#/WPF] x:Code 엘리먼트 사용하기 (0) | 2014.01.08 |
[C#/WPF] x:Class 속성 사용하기 (0) | 2014.01.08 |
[C#/WPF] FrameworkTemplate 클래스 : XAML 구하기 (0) | 2014.01.08 |
댓글을 달아 주세요