我有一个班级Class1
:
public partial class Class1 {
public void Button1_Click(object sender, RibbonControlEventArgs e)
{
//do something
}
}
和第二课Class2
:
public partial class Class2 {
//some Code
//Call Button1_Click from Class1
// some more code
}
如何在Class2中调用Class1的Button1_Click?
答案 0 :(得分:1)
您可以通过构造函数将Class1传递给Class2,例如
class Class1
{
Class2 c2 = new Class2(this);
}
class Class2
{
Class1 C2;
public Class2(Class1 _class1){
C2 = _class1;
}
}
然后按下按钮就可以了
public void PressClass1Button()
{
C2.Button1_Click();
}
对不起,我没有检查实际的语法,因为我正在工作,但这是我通常用于此类问题的基本概念。
这是一个混乱/简单的解决方案,可能不是最好的!
希望它有所帮助。
答案 1 :(得分:0)
您需要委托它,启动将自动调用按钮的事件单击
示例:
private void delegate_You_Create(object sender, RibbonControlEventArgs args)
{
Button1_Click(sender, args);
}
您可以阅读有关委托here
的内容答案 2 :(得分:0)
按钮点击事件可以在按钮点击的锡柄上执行操作。附带的功能只是你说"我想在发生这种情况时这样做"。
例如
public void Button1_Click(object sender, RibbonControlEventArgs e)
{
// Do the stuff I want to do when Button1 is clicked
}
扩展此示例以使用完全相同的第二个按钮,您可以添加第二个单击事件并复制像这样的代码
public void Button2_Click(object sender, RibbonControlEventArgs e)
{
// Do the stuff I want to do when Button1 is clicked
}
但是,更好的方法是避免重复,将按钮填充到方法中然后执行此操作
public void Button1_Click(object sender, RibbonControlEventArgs e)
{
DoButtonStuff();
}
public void Button2_Click(object sender, RibbonControlEventArgs e)
{
DoButtonStuff();
}
private void DoButtonStuff()
{
// Do the stuff I want to do when my buttons are clicked
}
进一步扩展这一点,您可以公开DoButtonStuff
并从其他地方调用它,就像使用任何其他方法一样。
这种做法更好,因为您可以捕捉您感兴趣的内容 - DoButtonStuff
- 而不是导致它发生的事情 - 按钮点击。
编辑 - 回答您的静态问题。
您有几个选择 -
你可以让DoButtonStuff
静态然后做这样的事情
// Class1
static void DoButtonStuff() { ... }
// Class2
Class1.DoButtonStuff();
你可以让DoButtonStuff公开然后在Class2中实例化Class1然后做这样的事情
// Class1
public void DoButtonStuff() { ... }
// Class2
Class1 myClass1 = new Class1();
myClass1.DoButtonStuff();
你可以将DoButtonStuff拉出到一个单独的类中并从那里调用它
// MethodClass
public void DoButtonStuff() { ... }
// Class1
MethodClass myMethodClass = new MethodClass();
myMethodClass.DoButtonStuff();
你可以在Class2中做同样的事。
第一个选项可能是最简单的,可能是最适合你的。
第二种选择很少是一个好主意,因为它以几乎肯定不应该的方式将你的两个班级联系起来。
对于更复杂的问题,第三种选择可能是最好的,特别是如果DoButtonStuff
没有涉及更新UI - 例如保存操作。