私はこの関数を に持っていて、同じ関数をなどForm1
に使用したいのですが、各フォームで関数を複製する代わりに、すべての人がアクセスできるようにする方法はありますか? 新しいものを作成してフォームから関数を呼び出そうとしましたが、機能しません...Form2
Form3
Class : Form
public void tb_Leave(object sender, EventArgs e)
{
if ((sender as TextBox).Text.Count() < (sender as TextBox).MaxLength)
(sender as TextBox).Text = (sender as TextBox).Text.PadLeft((sender as TextBox).MaxLength, '0');
}
アップデート
回答ありがとうございます。問題なく動作しますが、X テキストボックスに同じ方法を使用したい場合はどうすればよいでしょうか? (tb_Leave 関数で行っていたように)
つまり、私の古いメソッドでは、X テキストボックスを選択して、leave イベントを関数に送信するだけです。ヘルパー クラス内で別のメソッドを呼び出すメソッドを作成する必要があると述べていますが、まだメソッドを作成する必要があります。すべてのフォーム内で、そのクラスを呼び出すのは正しいですか? ただし、すべてのヘルパー クラスを含む新しい .cs ファイルを作成するだけでよいため、実際にはあなたの回答は非常に役立ちます:)
更新 2 このメソッドの移行に問題があります
public static void TextBoxKeyDown(this TextBox tb, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Enter:
case Keys.Add:
e.SuppressKeyPress = true;
processTabKey(true);
break;
case Keys.Decimal:
if (tb.Tag == "importe")
{
e.SuppressKeyPress = true;
processTabKey(true);
}
break;
case Keys.Subtract:
e.SuppressKeyPress = true;
processTabKey(false);
break;
}
}
もちろんprocessTabKey();
、アクティブなフォームでのみ機能することはわかっていますが、Form
クラス外で機能させるにはどうすればよいですか?