C#でのキーボード操作とは?コード例を用いてご紹介!

公開日時:   更新日時:
C#でのキーボード操作とは?コード例を用いてご紹介!
基本情報技術者試験の試験対策はこちら>>

SE
C#におけるキーボード操作について教えてください

PM
キーボード操作による入出力について紹介します。

C#におけるキーボード操作


この記事ではC#でフォームアプリケーションを作成する際、キーボード操作として入出力する方法を扱います。

ここで扱うC#でのキーボード操作による入力では、テキストボックス等への入力内容を取得し、大文字小文字などの異なる文字への変更をしたり、特定の文字入力を無効に出来ます。

キーボード操作による出力については、特定のアプリケーションへの文字入力をC#のプログラムで行います。

ここでは二つのテキストボックスとボタンを持つフォームでキーボード操作として入出力するC#プログラムを作成して解説します。

C#でキーボード入力を扱う方法

C#でキーボード操作の文字入力を扱うにはControl.KeyPressイベントを使います。テキストボックス「textBox1」にフォーカスがある時にキーボード操作での「5」が入力された場合に半角の一文字「5」でなく全角の三文字「<5>」を追加するには以下のようにします。

Visual Studioではプロパティウィンドウの操作で関数を追加します。

このコードは、「if (e.KeyChar == ‘5’)」で「5」のキーボード操作による入力が判定された時、「e.Handled = true;」でキーボード操作による入力を無効にし、「textBox1.AppendText(“<5>”);」で「textBox1」に全角の三文字「<5>」を追加します。

関数「private void textBox1_KeyPress(object sender, KeyPressEventArgs e)」の作成に当たっては、Visual Studioのフォームデザイナで「textBox1」にあたるテキストボックスをダブルクリックし、フォーカスのプロパティウィンドウにある稲妻アイコンのイベントをクリック後、「キー」イベントの「KeyPress」をダブルクリックします。

ここでは文字入力について扱いますが、Shift、Control、Alt等の特殊なキーも含めた入力にはControl.KeyDownイベント及びControl.KeyUpイベントを使用します。

C#でキーボード出力を扱う方法

C#でキーボード操作として出力する際にはSendKeys.Sendメソッドを使います。

「button1」がクリックされた際に、「textBox1」の内容を「textBox2」にプログラムでキーボード操作として出力するにはC#では以下のようなコードで行います。

「private void Button1_Click(object sender, EventArgs e)」関数を追加するには、フォームデザイナーの「button1」をダブルクリックします。

このコードは、「button1」がクリックされた際に、出力先「textBox2」にフォーカスを移動し、「SendKeys.Send(textBox1.Text);」で「textBox1」の内容でキーボード操作として出力します。

「textBox2」へのフォーカス移動を任意のアプリケーションを起動・アクティブ化するコードに変更する事で、アプリケーションへのキー入力をC#プログラムからのキーボード操作としての出力で自動化できます。

上とは逆に、「button2」がクリックされた際に、「textBox2」の内容を「textBox1」にC#のプログラムでキーボード操作として出力するには以下のようにします。

このコードで「textBox1」にキーボード操作として出力することになるので、「textBox2」に半角の「5」が含まれていた場合も「private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)」により、全角三文字の「<5>」が半角の「5」の代わりに追加される事になります。

「textBox2」に全角三文字の「<5>」が入っている場合はその内一文字の「5」も全角であるのでそのまま全角三文字の「<5>」がキーボード操作として出力されます。

つまり、「SendKeys.Send(str)」の「str」に全角文字が含まれていた場合、そのまま全角文字でアクティブなアプリケーションウィンドウに出力されます。

C#における全角文字のキーボード入力

C#でchar型は内部的にUTF-16であるため、e.KeyCharで全角文字を扱えます。

「textBox1」に書かれている全角文字の「<」は、「button1」をクリックする事で「textBox2」にキーボード操作として出力されますが、このコードにより「textBox2」に入力された「<」は無視され代わりに「※」が追加されますので、「textBox1」に「<5>」が書かれていれば、「※5>」として「textBox2」に出力されます。

C#でキーボード操作の入出力を扱うサンプルプログラム

以上を踏まえたC#で動作するキーボード操作のサンプルプログラムは以下の通りです。

SE
C#でのキーボード操作について理解できました。

PM
キーボード操作は基本的でありながら応用も利きます。プログラミングに活かしていきましょう。

C#でキーボード操作を扱ってみましょう

C#によるキーボード操作の入出力を解説しました。

キーボード操作の入力では、フォームのコントロールへのキーボード操作による入力を制限したり、入力された内容により指定した処理が出来ます。出力はアプリケーション操作の自動化などに使えます。

キーボード操作は基本的でありながら応用も利きますので、C#プログラミングに活かしていきましょう。


FEnetへの登録は左下のチャットが便利です 経験者優遇! 最短10秒!

.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags