2013-05-16 153 views
0

我只想连接两个任意控件,这样如果点击一个,另一个应该就像点击一样 - 这是甚至是远程可能的吗?它似乎应该是如此的容易,但互联网似乎干,除非我不知道如何正确地问这个问题...我看到一种方法来“点击”按钮控制,但如果目标不是一个按钮? - 我不知道可能由此控件的单击事件触发的任何函数的名称,因此我无法直接调用它。我想有使用的Windows API的一些方法,但我不能找到任何这很好,简单的VB如何在VB窗体中模拟点击事件Windows窗体

我点击窗体上的Label控件。我想处理该点击事件,运行一行代码,然后在关联的RadioButton控件上模拟点击事件

这可能吗?怎么样?

回答

1
+0

“?似乎互联网同意了,因为我找不到任何人推荐它,但它没有被弃用,所以使用它的缺点是什么? –

+0

这是关于UI和程序布局的分离。如果你真的想要的是单选按钮,你可以点击标签,这就是为什么单选按钮类有一个Text属性。 我在日常工作中遇到的一个基本罪孽是“窗体驱动设计”,其中大量程序代码隐藏在传统Windows程序的事件处理程序中。这使得很难发现,难以调试,并且不可能自动测试。 最好使用事件触发程序代码,如果没有其他理由,它会释放你重新设计UI后者。 – DougM

+0

在我的情况 - 这似乎是创建一个程序,你讨厌打开 - 我有文本框呈现为标签(TabStop false等),直到Ctrl +单击,在这一点上,他们变得可编辑。如果在没有Ctrl的情况下点击,我更喜欢它们表现得像是其他控件的一部分,如普通文本框或单选按钮。 (这是一个个人兴趣计划,所以你几乎不可能使用它) –

1

更好的方法是创建一个通用的子程序,单击任何一个控件都会调用该子程序。通过这种方式点击控件将执行自己的代码,这些代码可能会有所不同,还有一些通用代码。

+0

这不会处理连接到目标控制,但是其他事件处理器,并且可能是一些其他的事情 - 如果它不是可能的,其不可能的 - 我只是希望你为什么如果非要说”有人否则知道 –

0

这是你如何完成无论哪个控件事件被触发,都执行相同的代码。

Private Sub ClickMe() 
    'code to execute 
End Sub 

Private Sub label1_Click(...) ... 
    ClickMe() 
End Sub 

Private Sub rb_checked(...) ... 
    ClickMe() 
End Sub