using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;

namespace StCtlLib
{
	/// <summary>
	/// UserControl1 の概要の説明です。
	/// </summary>
	public class StTextBox : TextBox
	{
		/// <summary>
		/// 必要なデザイナ変数です。
		/// </summary>
		private System.ComponentModel.Container components = null;

		public StTextBox()
		{
			// この呼び出しは、Windows.Forms フォーム デザイナで必要です。
			InitializeComponent();

			// TODO: InitComponent 呼び出しの後に初期化処理を追加してください。
            TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
		}

		/// <summary>
		/// 使用されているリソースに後処理を実行します。
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if( components != null )
					components.Dispose();
			}
			base.Dispose( disposing );
		}

		#region コンポーネント デザイナで生成されたコード 
		/// <summary>
		/// デザイナ サポートに必要なメソッドです。このメソッドの内容を 
		/// コード］エディタで変更しないでください。
		/// </summary>
		private void InitializeComponent()
		{
			// 
			// StTextBox
			// 
			this.Name = "StTextBox";

		}
		#endregion

		public class TextEnteredEventArgs : EventArgs
		{
			private string enteredText;
			private bool handled;
			internal TextEnteredEventArgs(string s)
			{
				enteredText = s;
				handled = false;
			}
			public string Text
			{
				get
				{
					return(enteredText);
				}
			}
			public bool Handled
			{
				get
				{
					return(handled);
				}
				set
				{
					handled = value;
				}
			}
		}
		public delegate void TextEnteredEventHandler(object sender, TextEnteredEventArgs e);
		public event TextEnteredEventHandler TextEntered;
		protected virtual void OnTextEntered(TextEnteredEventArgs e)
		{
			if(TextEntered != null)
			{
				TextEntered(this, e);
			}
		}

	
		protected override void OnKeyDown(KeyEventArgs e)
		{
			if(e.KeyCode == Keys.Enter)
			{
				TextEnteredEventArgs tev = new TextEnteredEventArgs(Text);
				OnTextEntered(tev);
				e.Handled = true;
				return;
			}
			
			base.OnKeyDown (e);
		}
	}
}
