お世話になります。

下記のコードで作成したコンボボックスをフォームに貼り付け、コードがら初期値を
渡して選択されている項目を変更したかったのですが、なぜかうまくいきません。
SelectedValueで帰る値はobjectになっているようなので、それが原因なのかと
思うのですが、途方にくれました。

using System;
using System.Collections.Generic;
using System.Data;

namespace Easy
{
    public class UCombo : System.Windows.Forms.ComboBox
    {
        //DataTableオブジェクトを用意
        private DataTable tbl = new DataTable();

        public UCombo()
        {
            this.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;

            //DataTableに列を追加
            this.tbl.Columns.Add("ID", typeof(string));
            this.tbl.Columns.Add("NAME", typeof(string));

            this.tbl.AcceptChanges();

            //コンボボックスのDataSourceにDataTableを割り当てる
            this.DataSource = this.tbl;

            //表示される値はDataTableのNAME列
            this.DisplayMember = "NAME";

            //対応する値はDataTableのID列
            this.ValueMember = "ID";

            this.clear();
        }

        public void clear()
        {
            this.tbl.Clear();
        }

        public void add(string val,string disp)
        {
            //新しい行を作成
            DataRow row = this.tbl.NewRow();

            //各列に値をセット
            row["ID"] = val;
            row["NAME"] = disp;

            //DataTableに行を追加
            this.tbl.Rows.Add(row);
        }

    }
}

値の取得 string s = SelectedValue;は取得できますが、値の設定 SelectedValue = s;が
反映されません。

何卒よろしくお願いいたします。