【发布时间】:2019-09-09 23:00:15
【问题描述】:
如何通过一个按钮的点击方法访问其他按钮?我在 Milestone SDK(c#,visual studio)中工作。
我尝试过使用“this.”,但它显然不起作用...(我是 c# 的新手)...
在下面的示例中,我可以更改 bbt 按钮对象的 "CONTENT" (bbt.Content = "TEST";):
private void bbt_Click(object sender, RoutedEventArgs e)
{
var bbt = sender as Button;
bbt.Content = "TEST";
}
但是如何更改在我的代码中定义的其他按钮的内容?例如,另一个按钮名称是“action1”?
也许有一种方法可以声明类似的东西:
var bbt = sender as Button;
但是对于所有其他按钮,我可以像访问“bbt”一样访问它们?
想要一个允许 mi 做的代码:
action1.Content = "TEST";
其中 action1 是另一个按钮。
看起来我需要在引用“action1”之前添加一些前缀,否则它不可见并生成:
CS0103 当前上下文中不存在名称“action1”
【问题讨论】:
-
是的,您可以为多个控件创建单个事件处理程序并将
object sender转换为适当的控件类型。至于您访问action1的问题,没有足够的信息可以了解。首先,这是 WinForms 吗? WPF?还有什么? -
典型的例子是用数字键盘编写一个计算器。在这种情况下,所有按钮都将有一个数字 0..9 作为它们的 Text 属性。在这种情况下,您可以对所有数字按钮使用相同的处理程序,代码类似于
if (sender is Button btn) { /* code to extract digit from Text property and do the calculator work */ } -
action1和bbt是同一种形式吗?
-
是的,它们在同一张表格上。基本上我使用 Milestone SDK(相机 VMS)。用常规 c# 做了模型,效果很好,问题是我需要坚持使用 Milestone SDK ActiveOverlay
-
这里是整个代码的链接 - 也许你们可以帮助我:shrib.com/#IcinRLal40GYR48ZEpCf
标签: c#