- - PR -
【C#】TextBoxへのコントロール追加
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-04-24 17:03
いつもお世話になっています。
VS2005のC#で開発をしております。 テキストボックスにフォーカスが移った時、対象のテキストボックスの文字列が全選択されるようにしようと考えています。 カスタムコントロールで新しく作るのも、今まで作ったテキストボックスと置き換えることを考えると手間なので、オーバーライドを使って実現しようと考えているのですが、この場合オーバーライドはどのタイミングで行えばよろしいのでしょうか? 具体的には↓↓↓のソースで行おうと考えています。 class SelectAllTextBox : System.Windows.Forms.TextBox { protected override void OnEnter(EventArgs e) { base.OnEnter(e); // 文字を全選択します this.SelectAll(); } } ご教授宜しくお願いします。 | ||||
|
投稿日時: 2007-04-24 17:12
「考えています」ということは、まだ試していないということでしょうか? 質問する前に試して、それで上手くいかなければ質問するようにしてください。 #ちなみに試してみましたが、それで上手くいきました。 | ||||
|
投稿日時: 2007-04-24 17:41
すみません、質問としてはオーバーライドを行うタイミングをどこで行えばよいのか、ということです。
SelectAllTextBoxをクラスファイルに書き込んで、実行すれば、フォーム生成時にテキストボックスのコントロールとして追加されるものだと思っていたのですが、うまくいかないので、何か必要なものがあるのでしょうか? | ||||
|
投稿日時: 2007-04-24 17:53
この部分の意味がよくわからないので、はっきりとは言えませんが、 継承とかオーバーライドの概念を誤解されているような気がします。 ご提示のコードは、TextBox を継承した SelectAllTextBox という名前の新しいクラスのものです。 仮にこのコードが含まれていたとしても、 フォームに貼り付けられている普通の TextBox は、普通のTextBox のインスタンスですから フォーカスを受け取っても選択状態にはなりません。 普通の TextBox の代わりに SelectAllTextBox をフォームに貼り付ければ お望みの動作をすると思います。 一度ビルドすると「ツールボックス」ウィンドウに SelectAllTextBox が追加されるので、 それをフォームに貼り付けて確認してみてください。 | ||||
|
投稿日時: 2007-04-24 19:11
ご丁寧にありがとうございます。
たしかに、ツールボックスにSelectAllTextBoxが作成されており、希望通りの動きができました。 毎回TextBoxのEnterイベントにSelctAllを書かなくてもいいように、TextBoxに機能を追加するものだと考えていたのですが、全然違ったんですね・・・もう一度、オーバーライドについて勉強しなします。ありがとうございましたm(_ _)m | ||||
|
投稿日時: 2007-04-25 09:18
カスタムコントロールについて誤解がないでしょうか? セルカーさんの作ろうとしているものこそがカスタムコントロールです。 ですので、既に別の方からもご指摘のあるように 既存のTextBoxを使っている箇所をSelectAllTextBoxに置き換える必要があります。 | ||||
|
投稿日時: 2007-04-27 15:08
既知かもしれませんが。
今回のようにTextBox本来の機能に機能追加・機能変更を行う場合、TextBoxを継承したカスタムコントロールを作成します。 TextBoxから継承されたコントロールにはTextBoxのほぼ全機能が最初から引き継がれていいます。 そしてオーバーライトというのは今回のように継承元(TextBox)がもつ関数(OnEnter)を上書き(OverWrite)して、元々の機能を変更することをいいます。 _________________ by うちうせん [ メッセージ編集済み 編集者: うちうせん 編集日時 2007-04-27 15:08 ] | ||||
|
投稿日時: 2007-04-27 16:19
オーバーライト (Overwrite) ではありません。 オーバーライド (Override) です。 そして意味も違います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |