|
分類:[C# (ASP.NET)]
度々この掲示板を使用させて頂いております。 Webフォーム上でEnterキー押下でコントロールのフォーカスを移動させる目的で、scriptを書くのが面倒なのでWebカスタムコントロールを作成してみようと考えました。
例えばTextBoxを継承したWebTextクラスを作成しました。 //プロパティ private Control _next; public Control Next { get { return next;} set { _next = value; } } //オーバーライド(func_EnterはWebフォーム上のscriptで使用) protected override void AddAttributesToRender(HtmlTextWriter writer) { writer.AddAttribute("onKeyDown", "func_Enter('" + _next.CientID + "')"); base.AddAttributesToRender(writer); } これをコンパイルして新たなWebフォームにWebText1とWebText2を貼り付けます。 プロジェクトウィンドウにNextプロパティが表示されて、フォーム上にあるWebText1・WebText2が選択できるようになっているので成功したと思ったのですが、実際にWebText2を選択すると描写エラーとなって 「'Next' プロパティの文字列形式 'WebText2' から型 'System.Web.UI.Control' のオブジェクトを作成できません。」が表示されます。 どうやらsetの時にエラーしているようなのですが、どのように解決してよいのか分かりません。
Nextプロパティをstring型にすればうまく行くのですが、それだとプロパティウィンドウでいちいち他のコントロールのIDを記述しなければならないので出来ればsetする時はControlの選択できるで楽をしたいですが…
文章が下手なので分かりにくいと思いますが、分かる方がいらっしゃるならば解決策を教えていただけないでしょうか。
|