【发布时间】:2014-03-06 00:09:00
【问题描述】:
我创建了一个Rtb类,用来创建一个新的RichTextBox,下面是构造函数和列表
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
}
但是这个解决方案没有添加双击事件,我认为最后一部分代码有问题。那么如何给每一个创建的richtextbox添加事件呢?
【问题讨论】:
-
抱歉,现在您应该看到 Rtb
标签: c# .net wpf file richtextbox