青の部隊 505小隊 ULZ

.NETメモ帳

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

.NETチップス

ぶっちゃけメモ帳です。

TextBoxの内容が修正されたかどうか

Modifyプロパティを見る。

Enterキーでフォーカス移動

ProcessTabKey()、SelectNextControl()を使うのがミソ。

KeyDownとKeyPressイベントの違い

イベントの発生する条件(およびKeyを叩いたときの発生する順番)

  1. KeyDown:Keyが押された
  2. KeyPress:Keyが押されている
  3. KeyUp:Keyが放された

KeyDownとKeyPressの違い

  • KeyPressイベントはKeyDownイベントがfalseを返した場合発生しない。
  • KeyPressイベントはそのキーが押されている間、一定の間隔(OSが定めた間隔)で連続して発生する。
  • 受け取るデータ型が違う。
KeyDown(及びKeyPress)イベントはイベントに関するデータを
System.Windows.Forms.KeyEventArgs型で受け取る。
それに対し、KeyPressイベントは
System.Windows.Forms.KeyPressEventArgs型で受け取る。
また、
KeyEventArgs型はKeyAscii(ASCIIコード)でKeyを取得する。
KeyPressEventArgs型はKeyCodeでKeyを取得する。

KeyAciiの特徴

  • ASCIIコードなので'A'と'a'は区別される。
  • 制御Key(Ctrl,Alt,Shift,Delete,Fn,矢印)などを検出できない(ちなみにBackSpaceは文字としてみなされるので検出できる)。

KeyCodeの特徴

  • 大文字・小文字の区別がなく、'A'と'a'は同一とみなす。
  • 大文字・小文字を区別するにはShiftステータスを参照して判断する。
  • IME起動中はKeyDownイベントしか発生しない。
Enterで確定すると、KeyPressイベントが文字数分発生する。

結論:

KeyDownとKeyPressは取得したいKeyで使い分けるのが一般的である。

Visual Studio 2005 Image Library

VisualStudio風のルックアンドフィールドを目指すならVisual Studio 2005 Image Libraryが役に立つ。
中身はツールバーに表示するようなアイコンから、コピー時や通信時に表示するようなアニメーションまで、
VisualStudioで使われているものは一通り入っている模様。
このLibraryはインストールしたフォルダ以下にzip形式で置かれる。
C:\Program Files\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary

DataBindingした際の注意点

EndEdit()を忘れずに

.NET2.0からはDataBindingはBindingSourceを介して行うことがほとんどである。
例えばあるオブジェクトのString型プロパティを、あるTextBoxのTextプロパティにBindingSourceを介してBindingしたとする。
Bindingされているので、フォームからTextBoxの値を変えてやれば、その値は直ちにオブジェクトに反映される。
しかし、コード上でTextBoxのTextプロパティを変えた場合には注意が必要。
このとき、まだBindingSourceが編集状態にあるようで、これをEndEdit()で確定してやらなければ値は反映されない。
DataGridViewやDataRowも同様である。

見えなきゃやらないのと同じ

BindingしたコントロールのVisibleプロパティがfalseだと、どうやらBindingしていることにならないようだ。
見せたくないがBindingはしたいんだって場合は、フォームの枠外に隠すしかないね。



  • Keydown,pressの話で、VBの場合Enterはテンキーと区別されるのはKeyCodeのほうだから、これも使い分けの基準になるかもね -- qutto (2007-04-05 00:38:07)
  • つか、なに真面目に仕事してんの? -- qutto (2007-04-05 00:49:14)
  • 猛烈にコメントしてくれてるな。 -- NZ-000 (2007-04-05 00:50:28)
  • ddd -- ssss (2009-01-13 16:28:58)
名前:
コメント:

タグ:

+ タグ編集
  • タグ:
添付ファイル
ウィキ募集バナー