ラベル Windows Forms の投稿を表示しています。 すべての投稿を表示
ラベル Windows Forms の投稿を表示しています。 すべての投稿を表示

2017年1月14日土曜日

Windows Forms TextBox フォーカスイベント

TextBox にフォーカスが当たったタイミングで TextBox 内のテキストを全選択するロジックを実装する方法です。TextBox の GotFocus イベントにイベントハンドラを指定します。

public Form1()
{
    InitializeComponent();

    this.id.GotFocus += GotFocus;
}

private void GotFocus(object sender, EventArgs e)
{
    TextBox t = sender as TextBox;
    t.SelectAll();
}

2013年12月7日土曜日

コードビハインドから TextBox.TextChanged イベントを呼び出す

コードビハインドから動的にイベントを呼び出す方法です。

button1_Click イベント内で textBox1_TextChanged イベントに引数を渡すことで呼び出すことができます。呼び出し方法はメソッドと一緒ですね。第一引数にイベントの所有コントロール(TextBox1)を、第二引数に EventArgs インスタンスを割り当てます。

private void button1_Click(object sender, EventArgs e)
{
    // 動的に TextChanged イベントを呼び出す
    this.textBox1_TextChanged(this.textBox1, new EventArgs());
}

private void textBox1_TextChanged(object sender, EventArgs e)
{
    // 処理
}

ちなみに textBox1 の Text プロパティを変更することでもイベントは発生します。

private void button2_Click(object sender, EventArgs e)
{
    this.textBox1.Text = "new text";
}

2013年10月12日土曜日

Windows Forms でマウスカーソルを判定する

Windows Forms ではフォーム上のマウスカーソルの形状を確認したり、明示的に変更することができます。

↓ボタンコントロールでの簡単な例です。

private void button1_MouseEnter(object sender, EventArgs e)
{
    // マウスカーソルの形状を判定
    if (Cursor.Current == Cursors.Arrow)
    {
        (sender as Button).Cursor = Cursors.Hand;
    }
}

private void button1_MouseLeave(object sender, EventArgs e)
{
    (sender as Button).Cursor = Cursors.Arrow;
}


Cursors クラス

2013年10月5日土曜日

Windows Forms で Tab キー入力をイベント処理する

Windows Forms では、ユーザー コントロールに対する様々なキー入力をイベント ハンドルすることができますが、Tab キーはフォームレベルで管理されているためユーザー コントロール レベルではイベント が発生しません。ユーザー コントロール上で Tab キー入力をハンドルするには、ProcessCmdKey をオーバーライドします。

TextBox の場合:
class MyTextBox : TextBox
{
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (keyData == Keys.Tab)
        {
            // ここにロジックを実装
            Debug.WriteLine("Tab が押されました。");
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }
}


Control.ProcessCmdKey メソッド