首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

WPF实现多个RichTextBox联动 提醒未处理 System.NullReferenceException(求大神们帮忙啊)

2013-09-28 
WPF实现多个RichTextBox联动 提示未处理 System.NullReferenceException(求大神们帮忙啊!!)背景WPF实现多

WPF实现多个RichTextBox联动 提示未处理 System.NullReferenceException(求大神们帮忙啊!!)
背景WPF实现多个RichTextBox联动
输入数字和英文时是没有问题的,但输入中文是就提示如图错误
WPF实现多个RichTextBox联动 提醒未处理 System.NullReferenceException(求大神们帮忙啊)
我的代码如下:


  MyRichTextBox Myitem = (((MyRichText.Parent as Grid).Parent as StackPanel).Parent as Grid).Parent as MyRichTextBox;



                        if (Myitem ==null)
                        {
                            return;
                        }



                        foreach (var item in sp.Children)
                        {
                            if ((item as MyRichTextBox) != Myitem)
                            {
                                (item as MyRichTextBox).richTextBox1.TextChanged -= new TextChangedEventHandler(richTextBox1_TextChanged);
                                (item as MyRichTextBox).richTextBox3.TextChanged -= new TextChangedEventHandler(richTextBox1_TextChanged);
                            }


                        }
                        for (int i = 0; i < sp.Children.Count; i++)
                        {



                            string Myxml = System.Windows.Markup.XamlWriter.Save(MyRichText.Document);

                            System.IO.StringReader MystrReader = new System.IO.StringReader(Myxml);

                            XmlReader MyXmlReader = System.Xml.XmlReader.Create(MystrReader);
                            object MyObj = System.Windows.Markup.XamlReader.Load(MyXmlReader);

                            //    FlowDocument MyFlowDocument = MyObj as FlowDocument;
                            if (MyObj as FlowDocument == null)
                            {
                                return;
                            }

                            FlowDocument MyFlowDocument = MyObj as FlowDocument;

                            if ((sp.Children[i] as MyRichTextBox) != Myitem)
                             {


                            if (MyRichText.Name == "richTextBox1")
                            {
                                (sp.Children[i] as MyRichTextBox).richTextBox1.Document = MyFlowDocument;
                            }
                            if (MyRichText.Name == "richTextBox3")
                            {

                                (sp.Children[i] as MyRichTextBox).richTextBox3.Document = MyFlowDocument;
                            }


                         }
                            MystrReader.Dispose();
                        }

                        foreach (var item in sp.Children)
                        {
                            if ((item as MyRichTextBox) != Myitem)
                            {
                                (item as MyRichTextBox).richTextBox1.TextChanged += new TextChangedEventHandler(richTextBox1_TextChanged);
                                (item as MyRichTextBox).richTextBox3.TextChanged += new TextChangedEventHandler(richTextBox1_TextChanged);
                            }
                        }




以上的代码第一个输入为中文时就会报如图错误,当第一个输入的是数字或英文后 又没有问题。
加过断点  代码中没有找到为NULL 的对象。

错误实在方法结束后报出的,所以加了try也无法捕获


唉~~~ 百思不得其解~~
[解决办法]
原谅我没看下去的勇气,拉出去打屁屁先。。。。。。

热点排行