2013-02-19 39 views
0

如果有讓我們說4個按鈕,所有具有相同的Click事件,我怎樣才能找出哪個按鈕被按下?事件處理鐵python

如果事件看起來像這樣def Button_Click(self, sender, e):我敢肯定,我可以以某種方式比較發送到我的按鈕。但是如何?

+0

您使用的是什麼GUI工具包? – 2013-02-19 14:05:32

+0

我正在使用WPF與Visual Studio 2010 – Yui 2013-02-19 14:20:42

回答

1

嗯,我從來沒有用過的IronPython,所以我不知道有多少幫助,這將是,但試圖找出這些東西在常規的Python時,我通常做print type(sender)print senderprint dir(sender)到控制檯(或者如果您沒有可用的控制檯,則輸出到文件)。

這應該可以幫助您找出究竟是什麼「發件人」參數。在最簡單的情況下,它可能是按鈕本身,所以一個簡單的==將工作,知道它是哪個按鈕。或者它可以有一個方法/屬性讓你獲得按鈕對象。在這種情況下,dir(sender)可能包含明顯的一個,或者如果不包含,請從type(sender)獲取類名,並查看是否可以找到任何文檔。

+0

感謝發件人實際上是文本框,我只是不得不使用== – Yui 2013-02-19 14:47:17

+0

很高興已經服務:) – entropy 2013-02-19 16:52:13

+0

PS:這些是我感覺像python的完全缺乏類型信息很煩人。基本上,在API中沒有指定你應該給他們什麼或者他們將通過回調發送什麼。我意識到這是一個文檔問題而不是語言問題,但至少在文檔類型*有*的時候存在 – entropy 2013-02-19 16:54:22