|
分類:[C#]
初めまして、ただ今、C#での開発を勉強しております。 DLLを用いて、共通的にTextBoxを制御するDLLを作りたいと思ってます。 現状下記の通り設定することで、各種イベントが複数のコントロール(例ではTextBox1の操作ですべてのイベントが起動) で同一の動作をすることが確認できましたので、上手くいくかなと思ったのですが、 ★問題の箇所において、virtualTextBox.Textは選択したTextの値を取得できるかと思いきや、 空白となっており、うまくつながっていないおりませんでした。 TextBoxをDLLで取りまとめて制御する方法がこれ以外いまいち思い浮かばず、 もっと筋の良い方法、もしくは、当該方法でのvirtualTextBox.Textをうまく呼び出し元のTextBox1.Textと 同じ振る舞いになるよう設定する方法があればご教授頂けますと幸いです。
・DLL-----------------ここから---------------- class Text_Utl_class { public System.Windows.Forms.TextBox virtualTextBox; public virtual void setTextBox(TextBox obj, Enum enum_att) { virtualTextBox = obj; //TextBoxの設定作業
//イベントの作成 virtualTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(Text_Utl_KeyDown); virtualTextBox.Enter += new System.EventHandler(Text_Utl_Enter); virtualTextBox.Validated += new System.EventHandler(Text_Utl_Validated); virtualTextBox.Leave += new EventHandler(Text_Utl_Leave);
} private void Text_Utl_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { //キー入力制御領域 } private void Text_Utl_Enter(object sender, EventArgs e) { // IME制御を行う領域 } private void Text_Utl_Leave(object sender, EventArgs e) { // 検証を行う領域 } private void Text_Utl_Validated(object sender, EventArgs e) { // 検証後ValueにDB値(保存値)、Textに表示値を設定する領域 virtualTextBox.Tag = virtualTextBox.Text; //★問題の箇所 virtualTextBox.Text = virtualTextBox.Text; //★問題の箇所 } }
・DLL-----------------ここまで---------------- ・利用側-----------------ここから---------------- #region "メンバ" Text_Utl.Text_Utl_class _Text_Utl = new Text_Utl.Text_Utl_class(); #endregion
public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { _Text_Utl.setTextBox(textBox1); } ・利用側-----------------ここまで----------------
|