e.Handled = true;
Event Handled, ์ฆ ์ด๋ฒคํธ๊ฐ ์ฒ๋ฆฌ๋์๋ค๋ ๋ป์ด๋๊น.. ์ฒ์์๋ ๊ทธ๋ฅ for๋ฌธ์ break์ ๊ฐ์ ์ญํ ์ธ ์ค ์์๋ค.
๊ทธ๋ ๊ฒ ๋์ถฉ ๋์ด๊ฐ๊ณ ์ฝ๋๋ฅผ ์ง๋ค๊ฐ, ๊ณ์ํด๋ ์๋์๋ ๊ฒ์ด e.Handled = true;๋ฅผ ์ ํด์ค์ ๊ทธ๋ฌ๋ค๋ ๊ฒ์ ์๊ณ ๋ค์ ์ ๋๋ก ์ดํดํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
์ฒ์์๋ ์๋์ฒ๋ผ ์ฝ๋๋ฅผ ์คํํด๋ณด์๋ค.
private void SimpleButton_Click(object sender, RoutedEventArgs e)
{
if (true)
{
MessageBox.Show("1");
e.Handled = true;
MessageBox.Show("1-2");
}
if (true)
{
MessageBox.Show("2");
e.Handled = true;
MessageBox.Show("2-2");
}
if (true)
{
MessageBox.Show("3");
e.Handled = true;
MessageBox.Show("3-2");
}
}
break์ ๊ฐ๋ค๋ฉด 1๋ง ์คํ๋๊ณ ๋๋ ์ค ์์๋๋ฐ, ๋ชจ๋ MessageBox๊ฐ ์คํ๋์๋ค.
e.Handled = true; ๋, ํ์ฌ ๋ฐ์ํ๊ณ ์๋ ์ด๋ฒคํธ์ ๋ํ ์ฒ๋ฆฌ๊ฐ ๋ชจ๋ ๋๋ฌ์ผ๋, ๋ ์ด์ handle ํ์ง ์์๋ ๋๋ค๋ ๋ป์ด๋ค. ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ๋ง์ฐ์ค ํด๋ฆญ์ฒ๋ผ ํ ๋ฒ๋ง ์คํ๋๋ ๊ฒ์ด๋ฉด, ์ด๋ฒคํธ๋ ํด๋ฆญ ์ดํ์ ๋ค๋ฅธ ๊ฒ์ด ๋ฐ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ํด๋น ์์ ์ด ๋๋๋ฉฐ ๋ค์ ์์ ์ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
e.Handled๋ ์ฃผ๋ก ํค๋ณด๋ ์ด๋ฒคํธ์์ ๋ง์ด ์ฐ์ธ๋ค๊ณ ํ๋ค. ์ง๊ธ ํ๊ณ ์๋ ์ธํด ์ํ์์๋ ํค๋ณด๋ ์ด๋ฒคํธ ๋ถ๋ถ์์ ๋ง์ด ์ฐ๊ธธ๋ ๊ทธ๋ฅ ๋ฐ๋ผ์ฐ๊ณ ์์๋ค.
e.Handled๋ฅผ ์ฌ์ฉํ๋ฉด, ์
๋ ฅ๋ ํค๋ฅผ ์ฒ๋ฆฌํ ๋, ํน์ ํค๋ฅผ ๋ฌด์ํ๊ฑฐ๋ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ์ค๋จํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํน์ ํค์ ์
๋ ฅ์ ๋ฌด์ํ๋ ค๋ฉด PreviewKeyDown ๋๋ PreviewTextInput ์ด๋ฒคํธ์์ e.Handled = true๋ฅผ ์ค์ ํ๋ฉด ์
๋ ฅ์ด ๋ฌด์๋๋ค.
private void TextEdit_PreviewTextInput(object sender, System.Windows.Input.TextCompositionEventArgs e)
{
if (!char.IsDigit(e.Text, 0)) // ์
๋ ฅ๋๋ Text๊ฐ ์ซ์๊ฐ ์๋ ๊ฒฝ์ฐ
{
e.Handled = true;
}
}
PreviewTextInput์ Text๊ฐ ์
๋ ฅ๋๊ธฐ ์ ์ ์ด๋ ํ Text๊ฐ ์
๋ ฅ๋ ๊ฒ์ธ์ง ํ์ธํ ์ ์๋ค. ๋ง์ฝ ์ซ์๊ฐ ์๋ ๋ฌธ์๊ฐ ์
๋ ฅ๋๋ฉด, e.Handled = true๊ฐ ๋๋ค.
์ด๊ฒ์ด ์คํ๋๋ฉด, preview text input ์ด๋ฒคํธ๊ฐ ์ค๋จ๋๋ฉด์, ํค๊ฐ ์
๋ ฅ๋์ง ์๋๋ค. ์ฆ, ์ซ์ ์ด์ธ์ ๋ฌธ์๋ ํค๋ณด๋ ์
๋ ฅ ์ด๋ฒคํธ๊ฐ ์ค๋จ๋๊ธฐ ๋๋ฌธ์ ์
๋ ฅ๋์ง ์๋๋ค.
์ด์ ์ด๋ก ์ ์ธ ์๋ฏธ๋ ์์์ผ๋, ๋ง์ ์ด๋ฒคํธ๋ฅผ ๋ค๋ค๋ณด๋ฉด์ ์ด๋์ e.Handled = true;๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ์ง ์ตํ์ผ ํ ๊ฒ ๊ฐ๋ค.
'๐ฅ๏ธ > C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C#] ์บ์คํ (Casting)๊ณผ Convert ํด๋์ค (0) | 2023.10.19 |
---|---|
[C#] ์ ํธ๋ฆฌ๋ทฐํธ(Attribute)๋? (2) | 2023.10.18 |
[C#] LINQ์์ foreach๋ฅผ ์ฌ๋ฌ ๋ฒ ์ฐ๋ฉด ์๋๋ ์ด์ (0) | 2023.10.12 |
[C#] LINQ์ Single()์ ๋ํด์ (0) | 2023.10.12 |
[C#] ์ค๋ ๋์ ํฌ๋ฆฌํฐ์ปฌ ์น์ (Critical Section) (0) | 2023.10.11 |