IronPythonでメソッドをオーバーライドして基底クラスに投げる。

IronPythonに限ったことじゃないけど、IronPythonでWinforms触ってたら避けられない問題なので。組込み関数のsuperを使う。

import clr
clr.AddReference("system.windows.forms")
from System.Windows.Forms import *
class HogeForm(Form):
	WM_LBUTTONDBLCLK = 0x0203
	count = 0

	def WndProc(self, m):
		if m.Msg == self.WM_LBUTTONDBLCLK:
			self.Text = self.count.ToString()
			self.count += 1
		super(HogeForm, self).WndProc(m)

if __name__ == "__main__":
	Application.Run(HogeForm())

 

Form.WndProc(self, m)

でも動くけど推奨されていないみたい。