私にとってはうまくいくので、リスト内のアイテムに何かがあるか(カスタム?イベントを傍受する?)、またはイベントが適切に接続されていない可能性があると思います。
たとえば、これを試してください(Form1.csに記入してください)。
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows.Forms;
namespace WindowsFormsApplication1 {
public class MyObject {
public MyObject(string someValue) {
SomeValue = someValue;
}
protected string SomeValue { get; set; }
public override string ToString() {
return SomeValue;
}
}
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
var list = new List<MyObject> {
new MyObject("Item one"), new MyObject("Item two")
};
listBox1.DataSource = list;
}
private void listBox1_DoubleClick(object sender, EventArgs e) {
Debug.WriteLine("DoubleClick event fired on ListBox");
}
}
}
これを含むデザイナーソースファイル(Form1.Designer.cs)を使用すると、次のようになります。
private void InitializeComponent() {
this.listBox1 = new System.Windows.Forms.ListBox();
... // left out for brevity
this.listBox1.DoubleClick += new System.EventHandler(this.listBox1_DoubleClick);
テストとして、テンプレートを使用して新しいフォームベースアプリケーションを作成し、リストボックスのみを追加してクラスMyObjectを定義します。同じ動作を観察するか、異なる動作を観察するかを確認します。