๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ/C#

[C# WPF] e.Handled = true;

by HanaV 2023. 10. 16.
728x90
 
 

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;๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ ์ง€ ์ตํ˜€์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

728x90

"); wcs_do();