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

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

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

Re[2]: dataGridViewの列単位でIMEの設定をするには


(過去ログ 90 を表示中)

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

■53279 / inTopicNo.1)  dataGridViewの列単位でIMEの設定をするには
  
□投稿者/ クロ (3回)-(2010/09/09(Thu) 10:54:26)

分類:[ASP.NET (VB)] 

2010/09/09(Thu) 14:12:34 編集(投稿者)

お世話になっております。
2点わからない事があり、質問させていただきます。

@dataGridViewで1列目が全角、2列目がカタカナ、3列目が半角等と
設定したのですがどのようにしたらいいのでしょうか?

AdataGridViewの一列にデータ入力をして、次の行に移動した時に
行移動をする前に行に未記入があったら、エラーメッセージを出して
前の行に戻る処理をしたいのですが
EnterやLeaveのフォーカス移動関連のイベントで
セル移動をしようとすると
『SetCurrentCellAddressCore 関数への再入呼び出しを生じるため、この操作は有効ではありません』とエラーになります。
調べてみた所、イベント内で再度同じイベントが起きる処理は
エラーが起きるようになっているようです。

最悪の場合は、無理やりプロパティを変更して、それに関わる
イベントで処理したいと考えていますがもっといい方法があれば
ご教授お願いいたします。

引用返信 編集キー/
■53323 / inTopicNo.2)  Re[1]: dataGridViewの列単位でIMEの設定をするには
□投稿者/ shu (29回)-(2010/09/10(Fri) 12:20:02)
No53279 (クロ さん) に返信
記憶違いならごめんなさい。ASP.NETにはDataGridもGridViewもあるけど、DataGridViewってありましたっけ?
引用返信 編集キー/
■53388 / inTopicNo.3)  Re[2]: dataGridViewの列単位でIMEの設定をするには
□投稿者/ クロ (5回)-(2010/09/11(Sat) 22:02:00)
すいません。 分類を間違えていました。[VB.NET/VB2005 以降]です。

@に関してですが
http://dobon.net/vb/dotnet/datagridview/editingcontrol.html
であったのですが文字入力をした後にイベントが起きるので、全角時に半角列に入力すると『あaaaa』となってしまうので
セルにフォーカスが入る度に毎回IMEを変えるのであまり良い形とは言えませんが
dataGridView_CellEnterイベントで
e.ColumnIndexから列Indexを取得して、列によって
DataGridViewのIMEを変更するようにしました。

Aに関しては
dataGridView_RowValidatingイベントで
行移動しようとした時に未記入のセルがあると
e.Cancel = True
でイベントキャンセルでなんとか解決しました。

どうもありがとうございました。

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -