2013-05-09 144 views
0

即时通讯工作的代码编辑器(winforms)和我只是想知道是否有可能从窗体调用一个特定的框到另一个?从另一种形式调用工具到另一种形式?

样品此代码集:上述

int line = 1 + richTextBox1.GetLineFromCharIndex(richTextBox1.GetFirstCharIndexOfCurrentLine()); 
int column = 1 + richTextBox1.SelectionStart - richTextBox1.GetFirstCharIndexOfCurrentLine(); 
label1.Text = "line: " + line.ToString() + ", column: " + column.ToString(); 

***码是其中要求的行和列的计数在像在实际代码编辑器的下部rightpart一个RichTextBox计时器内部。

现在我只是想知道是否可以调用显示在主窗体上的标签并显示给其他窗体,但仍然可以运行。

像mainform中的richtextbox代码和其他形式的代码应该有连接到mainform的标签代码。

我的问题是否有可能从另一个表格 调用另一个工具函数?

希望你能帮助我,真的需要和非常感谢!

+0

我99%肯定这里有一个重复的问题,但简单的答案是使用一个事件模型,并订阅该事件 – 2013-05-09 02:32:39

+0

@Shimmy它的WinForms先生,我包括在我的问题:/ – Elegiac 2013-05-09 02:36:58

回答

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问题。

+0

而且从什么你似乎在描述那里有一个最简单的参考方法,也是这两种形式的一个很好的逻辑结构,其中一种形式是另一种形式的MDIParent。 – Adrian 2013-05-09 02:36:29

+0

怎么样?你能给出至少一个示例代码吗? – Elegiac 2013-05-09 02:36:30

+0

@Elegiac答案已更新。 – Shimmy 2013-05-09 02:42:33