1

我是 DOT NET 的新手

我正在WPF使用 C# 构建一个应用程序,其中我有一个(可检查)用于切换文本框MenuItem的自动换行功能(就像在记事本中一样),即在和之间切换TextWrapping="Wrap"TextWrapping="NoWrap"

菜单项

<MenuItem Header="_Word Wrap" Name="wordWrap" IsCheckable="True" IsChecked="True" Checked="wrap_Click"/>

文本框

<TextBox TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Visible" Name="txtContent">

如何创建一个函数,以便在选中 MenuItem 时打开自动换行功能,在取消选中 MenuItem 时关闭自动换行功能

我尝试了以下代码,

private void wrap_Click(object sender, RoutedEventArgs e)
        {
            if (wordWrap.IsChecked)
                txtContent.TextWrapping = TextWrapping.Wrap;
            else
                txtContent.TextWrapping = TextWrapping.NoWrap;
        }

但它在以下位置显示异常txtContent.TextWrapping = TextWrapping.Wrap;

Object reference not set to an instance of an object.

请帮我

谢谢 !

4

1 回答 1

1

这似乎不是您的实际事件的问题。只需尝试将您的事件更改为点击事件。

所以,改变这个:

<MenuItem Header="_Word Wrap" Name="wordWrap" IsCheckable="True" IsChecked="True" Checked="wrap_Click" />

对此:

<MenuItem Header="_Word Wrap" Name="wordWrap" IsCheckable="True" IsChecked="True" Click="wrap_Click" />

这为我解决了这个问题。您甚至不必更改事件代码。它是正确的。出于某种原因,编译器只是不喜欢将其作为检查事件...

于 2013-11-03T15:04:18.977 回答