ListBoxから継承するクラスを作成し、それにプロパティPreviousSelectedIndexを追加しようとしています。これまでのところすべて良い。
次に、 SelectedIndexが変更される前にそのプロパティを設定しようとしています。
問題は、プロパティSelectedIndexが変更されたメソッドが見つからないため、キャプチャできることです。オブジェクト自体でいつでも手動で変更できますが、これは回避策にすぎません。これが私が得たものです:
public class MyListBox : System.Windows.Forms.ListBox
{
    public int PreviousSelectedIndex { get; set; }
    public MyListBox() : base()
    {
        this.PreviousSelectedIndex = -1;
    }
    protected override void OnClick(EventArgs e)
    {
        this.PreviousSelectedIndex = base.SelectedIndex;
        base.OnClick(e);
    }
}
私が試しているとき:
MessageBox.Show(
            "Previous Index = " + listBox4.PreviousSelectedIndex +
            "\nCurrent Index = " + listBox4.SelectedIndex
            );
私はいつも同じ値を取得します。
また、OnMouseDown( )とOnSelectedIndexChanged()で試してみましたが、うまくいきませんでした。