C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: DataGridViewのCellEndEdit時に


(過去ログ 103 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■61657 / inTopicNo.1)  DataGridViewのCellEndEdit時に
  
□投稿者/ takux (5回)-(2011/08/25(Thu) 17:15:44)

分類:[C#] 

特定の列で入力制限を行おうと下記のようなプログラムを作っています。
datagridview1の中にコンボボックスがありEditingControlShowingの部分で、
テキストボックス型であるときのみTextEditCtrl_KeyPressイベントの関連付けを行っているのですが、
今のままでは関連付けを行っていない場合ができてしまいCellEndEditイベント時にエラーが起きてしまいます。
CellEndEditイベント時にセルがテキストボックス型かどうかの判別は行えないのでしょうか。


private void datagridview1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is DataGridViewTextBoxEditingControl)
{
TextEditCtrl = (DataGridViewTextBoxEditingControl)e.Control;
TextEditCtrl.KeyPress += new KeyPressEventHandler(TextEditCtrl_KeyPress);
}
}
private void TextEditCtrl_KeyPress(object sender, KeyPressEventArgs e)
{
switch (colNumber)
{
case 3:
case 4:
case 5:
case 7:
if ((e.KeyChar < (char)Keys.D0 || e.KeyChar > (char)Keys.D9)
& e.KeyChar != (char)Keys.Back)
{
e.Handled = true;
}
break;
default:
break;
}
}
private void datagridview1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
TextEditCtrl.KeyPress -= new KeyPressEventHandler(datagridview1_TextEditCtrl_KeyPress);
}


引用返信 編集キー/
■61658 / inTopicNo.2)  Re[1]: DataGridViewのCellEndEdit時に
□投稿者/ 魔界の仮面弁士 (2330回)-(2011/08/25(Thu) 17:40:16)
No61657 (takux さん) に返信
> 特定の列で入力制限を行おうと下記のようなプログラムを作っています。
テンプレート列自体をカスタマイズするという方法も。
http://dobon.net/vb/dotnet/datagridview/maskedtextboxcolumn.html

> CellEndEditイベント時にセルがテキストボックス型かどうかの判別は行えないのでしょうか。
e.ColumnIndex 等で判定できないでしょうか。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -