我正在编写代码编辑器(winforms),我只是想知道是否可以从表单调用特定的盒子到另一个?
这组代码的示例:
int line = 1 + richTextBox1.GetLineFromCharIndex(richTextBox1.GetFirstCharIndexOfCurrentLine());
int column = 1 + richTextBox1.SelectionStart - richTextBox1.GetFirstCharIndexOfCurrentLine();
label1.Text = "line: " + line.ToString() + ", column: " + column.ToString();
上面的***代码位于一个计时器中,该计时器调用了富文本框中的行和列的计数,如实际代码编辑器的右下部分。
现在我只是想知道是否可以调用显示在主窗体上的标签并显示给另一个但仍然会运行。
就像在mainform中那样是richtextbox的代码,在其他形式上它应该有连接到mainform的标签代码。
我的问题是可以从另一种形式调用工具函数 到另一个?
希望你能帮助我,真正有需要,非常感谢!
答案 0 :(得分:1)
只要您有对该表单工具箱的引用,只需通过公共属性公开Label
/ TextBox
或任何您想要更改的内容,然后根据您的上下文进行设置。
public class ToolBox : ToolBoxBase
{
public CustomLabel
{
get
{
return label1.Text;
}
set
{
label1.Text = value;
}
}
}
private ToolBox toolbox;
void ShowToolBox()
{
InitToolBox();
toolbox.CustomLabel = "New label";
}
由于我甚至不确定问题涉及哪种技术,我添加了一个可怜的伪示例来获取您的想法。 InitToolBox
方法初始化工具箱并显示它,并设置字段toolbox
并引用它。
如果另一个表单在另一个线程上运行,那么您将不得不异步调用标签设置器。有关更多说明,请参阅this问题。