C# 按钮返回变量字符串的值

C# 按钮返回变量字符串的值,c#,winforms,C#,Winforms,按钮可以返回变量的值吗?可能吗?我是winform的新手,所以…理解我。最终的目标是有一个带有两个按钮的简单代码,如果单击该按钮,将返回一个值为var的msgbox private string button3_Click(object sender, EventArgs e) { string res = "PASS"; MessageBox.Show(res); return res; } private string button4_Click(object sender,

按钮可以返回变量的值吗?可能吗?我是winform的新手,所以…理解我。最终的目标是有一个带有两个按钮的简单代码,如果单击该按钮,将返回一个值为var的msgbox

private string button3_Click(object sender, EventArgs e)
{
  string res = "PASS";
  MessageBox.Show(res);
  return res;
}

private string button4_Click(object sender, EventArgs e)
{
  string res = "FAIL";
  MessageBox.Show(res);
  return res;

}

嗯,
button3\u Click
等都是所谓的回调函数,由系统调用,这就是为什么不返回任何值(系统不需要它)。让我们提取一个方法:

然后你可以把:

// System callback function

// void: System callback function signature
private void button3_Click(object sender, EventArgs e) {
  MyButtonClick(sender);  
}

// void: System callback function signature
private void button4_Click(object sender, EventArgs e) {
  MyButtonClick(sender);  
} 


单击事件处理程序具有强类型签名,即返回类型必须为
void
,因此不能从它们返回任何内容

但是,如果您使用的是windows窗体,那么您的窗体有一个类,您可以将这些事件hadnler放置在该类中。所以您可以做的是:定义私有变量:

pirvate string _res;
然后在单击事件HADLER中指定它的值,例如:

private string button3_Click(object sender, EventArgs e)
{
  _res = "PASS";
  MessageBox.Show(_res);
}
然后在代码中,您可以根据需要使用该值

如果要在类之外使用它,请定义属性:

public string Res
{
  get { return _res; }
}

当您将
res
值传递给
MessageBox.Show(res)
时,您已经在执行此操作了。您可以编写:
private void DisplayMessage(string message){MessageBox.Show(message);}
然后在两个按钮单击函数中调用此方法,如:
DisplayMessage(res)谁应该使用返回的值?可能再次出现oh hi@DmitryBychenko的重复,返回值将被WPFYU中的另一个应用程序使用。你永远不会让我失望,这是一个简单的镜头…非常感谢dmitry…再次,只有一点改进按钮类型是无效的string@mad科德罗波:当然,它应该是
void
void按钮3\u单击
void按钮4\u单击
剩下的唯一问题是如何从另一个应用程序中提取结果并将其插入数据库?@mad codroipo:applications交互(如果“另一个应用程序”是不同的exe文件)是一个困难的过程(例如,两个exe都建立命名管道)并向其发送数据以进行交互)。如果“另一个应用程序”只是同一exe的另一种形式,那么您所要做的就是修改
mybutton单击
(例如,编写代码将消息保存到RDBMS中)
private string button3_Click(object sender, EventArgs e)
{
  _res = "PASS";
  MessageBox.Show(_res);
}
public string Res
{
  get { return _res; }
}