当只有一个richtextbox时,下面是我的代码。但是,我不知道如何处理多个richtextbox。
private void BoldToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.SelectionFont = new font(currentFont.FontFamily, FontStyle.Bold);
}发布于 2018-01-03 17:08:43
窗体的ActiveControl属性将保存您。当您的toolstripbutton的Click事件被激发时,ActiveControl仍然持有对刚刚失去焦点的控件的引用。toolstripbutton的Click实现将会起作用:
private void toolStripButton1_Click(object sender, EventArgs e)
{
// check if the active control (held by the Form) was a RichTextbox
var rtb = this.ActiveControl as RichTextBox;
if (rtb != null)
{
// if it is, do the right thing
rtb.SelectionFont = new Font(rtb.Font, FontStyle.Bold);
}
}它看起来可能是这样的:

发布于 2018-01-03 16:46:14
按照与此answer类似的思路,您可以这样做
private void BoldTextBoxes()
{
Action<Control.ControlCollection> func = null;
func = (controls) =>
{
foreach (Control control in controls)
if (control is RichTextBox)
(control as RichTextBox).SelectionFont = new font(currentFont.FontFamily, FontStyle.Bold);
else
func(control.Controls);
};
func(Controls);
}发布于 2018-01-03 16:39:42
非常简单:
private void BoldToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.SelectionFont = new font(currentFont.FontFamily, FontStyle.Bold);
richTextBox2.SelectionFont = new font(currentFont.FontFamily, FontStyle.Bold);
richTextBox3.SelectionFont = new font(currentFont.FontFamily, FontStyle.Bold);
// Continue
}https://stackoverflow.com/questions/48073792
复制相似问题