2014-03-05 25 views
0
增加負荷後事件

我創建了一個類RTB這是創建一個新的RichTextBox,下面是構造函數和列表如何回來XamlReader

public Rtb() 
    { 
     newRTB = new RichTextBox(); 
     newRTB.IsReadOnly = true; 
     newRTB.MouseDoubleClick += new MouseButtonEventHandler(newRTB_MouseDoubleClick); 
     reqName = "Box" + NextID.ToString(); 
     newRTB.Name = reqName; 
    }  

List<Rtb> rtbeditor = new List<Rtb>(); 

我想點擊菜單,添加一個BlockUIContainer,和在容器內一個新的RichTextBox,請參見下面

private void menuReq_Click(object sender, RoutedEventArgs e) 
    { 
     BlockUIContainer newBlockUC = new BlockUIContainer(); 
     newBlockUC.Margin = new Thickness(50, 10, 50,10); 
     Bigwin.Document.Blocks.Add(newBlockUC); //Bigwin is a big richtextbox 
     rtbeditor.Add(new Rtb()); 
     Rtb newRichTB = new Rtb();     
     newBlockUC.Child = newRichTB.newRTB; 

    } 

然後我保存它使用的XamlWriter,問題的XamlWriter無法保存事件,所以我必須加載時添加事件後面,見下文

private void LoadRtfFile(string path) 
    { 
     FileStream fs = new FileStream(path, FileMode.Open); 
     FlowDocument doc = XamlReader.Load(fs) as FlowDocument; 
     Bigwin.Document = doc; 
     fs.Close(); 
     foreach (var rtb in rtbeditor) 
      rtb.MouseDoubleClick += req1_MouseDoubleClick; //add event to every richtextbox 

    } 

但是doubleclick事件不是通過這個解決方案添加的,我認爲代碼的最後一部分有問題。那麼如何添加事件到每個創建的richtextbox?

+0

什麼是Rtb? – GazTheDestroyer

+0

對不起,現在你應該看到Rtb – user3339999

回答

0

您正在訂購MouseDoubleClickRtb,而不是Rtb.newRTB