中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

DataGridは難しい

今日はRSSEditなんかいじってたりします。

DataGridを行選択モードで使いたいって言う需要は必ずあるんですが、@ITや諸々のサイトでの方法だけではうまくいきません。

なので今ついでにその辺も調べながらやっていますが、一筋縄ではいきません。

特にこのダイアログ ボックスではなく、Just-In-Time (JIT) デバッグを呼び出すための詳細については、
このメッセージの最後を参照してください。

************** 例外テキスト **************
System.IndexOutOfRangeException: インデックスが配列の境界外です。
   at System.Windows.Forms.DataGrid.Edit(String instantText)
   at System.Windows.Forms.DataGrid.Edit()
   at System.Windows.Forms.DataGrid.OnEnter(EventArgs e)
   at System.Windows.Forms.Control.NotifyEnter()
   at System.Windows.Forms.ContainerControl.UpdateFocusedControl()

このエラーが出るのは深刻です。

Googleでも解決策が出ていないようなので、調べておきます。

[原因]
DataSourceに3行あるものをDataGridで3行表示していて、3行目のセルを入力モードにしていたときに、2行に減らしたDataSourceに切り替えたりして、3行目がなくなった場合に発生します。

ただし発生するタイミングは別のセルにフォーカスを移動して、編集モードが開始されるときです。(前回のセルのコミット処理をするのに失敗するようなイメージ)

[参考]

http://www.dotnet247.com/247reference/msgs/26/134878.aspx

[解決策]

実は2~3時間やってみたのですが、見つかりません。
EndEditしても、だめみたいです。

どなたか解決策を持っておられたら教えてください。

投稿日時 : 2005年2月6日 0:03

コメントを追加

# re: DataGridは難しい 2006/06/28 15:23 lele

はじめまして。googleでたどりつきました。

もうご存知かもしれませんが、参考URLに解決法が載ってますよ。

行削除する時に、
DataGrid.CurrentRowIndex = 0
で、うまくいきました!!

タイトル
名前
URL
コメント