- PR -

カスタムコントロールの作成

1
投稿者投稿内容
tabou
常連さん
会議室デビュー日: 2002/07/15
投稿数: 39
投稿日時: 2003-01-05 08:23
「月刊dotNET」のP98からの記事を参考にC#でTextBoxを継承した
カスタムコントロールを作成しております。
記事はVB.NETでの記事となっておりますのでこれを自分なりにC#に書き換えております。

コンパイル、ツールボックスへの追加までは問題ないのですが、
Webフォームに貼り付けようとすると

Just-In-Timeデバッグ と言うタイトルで
例外 System.StackOverflowExceptionがDefaultDomainで発生しました

と言うエラーが表示されたウインドーが表示されます。

選択したデバッガでデバッグしますか。
に対して「はい」を答えると
今度は
'System.StackOverflowException' のハンドルされていない例外が mscorlib.dll
で発生しました。

となりこの先どうしたらよいのかわかりません。

プログラムは下記の内容になっています。

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace myWebControl
{
  [DefaultProperty("Text"),
  ToolboxData("<{0}:AspFocusText runat=server></{0}:AspFocusText>")]
  public class AspFocusText: System.Web.UI.WebControls.TextBox
  {
protected override void AddAttributesToRender
       (System.Web.UI.HtmlTextWriter writer)
{
writer.AddAttribute"onFocus", "this.style.backgroundColor=
         \"LightGreen\"");
writer.AddAttribute("onBlur", "this.style.backgroundColor =
          \"white\"");

this.AddAttributesToRender(writer);
}
   }
}

多分プログラムが間違っているのではないかと思い他の書籍を参考にいろいろやってみたのですが解決の見込みが有りません。
原因がお分かりでしたらご教示ください。



NothingButXMLInfoSet
大ベテラン
会議室デビュー日: 2002/07/16
投稿数: 116
投稿日時: 2003-01-05 09:54
引用:

tabouさんの書き込み (2003-01-05 08:23) より:
this.AddAttributesToRender(writer);


ここで自分を再帰的に呼び出し続けています。tabouさんの意図はthis.ではなくbase.なのではないでしょうか?
tabou
常連さん
会議室デビュー日: 2002/07/15
投稿数: 39
投稿日時: 2003-01-05 11:42
NothingBut.NETFXさんコメント有難うございます。
動きました。

引用:

NothingBut.NETFXさんの書き込み (2003-01-05 09:54) より:

ここで自分を再帰的に呼び出し続けています。tabouさんの意図はthis.ではなくbase.なのではないでしょうか?



サンプルのvbでは MyBase. を使っておりましたのでC#ではthis. ではないかと
思いこんでおりました。

次のステップに進めます、有難うございました。

1

スキルアップ/キャリアアップ(JOB@IT)