A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
No.1です。
状況としては、Button1_Clickの前に何らかのイベントでCurrentCell.RowIndexが-1されていると思うので、DataGridView1の他のイベントで書き換えていませんか?
例えば DataGridView1_LostFocusなどで。
またはDataGridView1_CellLeaveでセルがフォーカスを失った所にブレークポイントを入れて、トレースしてみてはどうでしょうか?
回答ありがとうございます。
記載していただいた通り、DataGridViewから呼び出されるイベントに全てブレークポイントを置いてみましたが、特に何か影響を及ぼしている箇所は見つけられず。。
選択行を削除したい機能でしたので、
IsNewRowプロパティはあきらめて、
ClickイベントやKeyPressイベントが押された時に選択行を保存して、削除ボタンを押した時に、選択されていた行がMaxRows-1の値かどうかを調べて新規行かどうかを判断することにしました。
ご回答、ありがとうございました
No.1
- 回答日時:
>If DataGridView1.CurrentRow.IsNewRow = False Then
>'処理を記述
>End If
で、
>新規行を選択しているにもかかわらず、IsNewRowプロパティがFalseとなってしまいます。
と言う事は、新規行を選択していても「'処理を記述」の処理をしてしまうという事でしょうか?
前後が分からないのですが、もしかしたら予期しないイベントでIsNewRow=Faldeの状態でそこを通ってしまうのかもしれないので、If行にブレークポイントを設定するか、
If DataGridView1.CurrentRow.IsNewRow = False Then
Debug.Print("IsNewRow = False")
'処理を記述
Else
Debug.Print("IsNewRow = True")
End If
とかにして、そこをどのように通過したかを調べてみてはどうでしょうか?
1度はTrueで通って、その後Falseで再び通過するような事は無いでしょうか?
この回答への補足
回答ありがとうございます。
>と言う事は、新規行を選択していても「'処理を記述」の処理をしてしまうという事でしょうか?
はい、その通りです。
補足しますと、
DataGridViewの新規行を選択した状態で、
コマンドボタンクリックのイベントを発生させます。
すると、新規行を選択しているにもかかわらず、IsNewRowがFalseとなっています。
また、CurrentCell.RowIndexが「新規行-1」の値を出しています。
(本来の新規行のRowIndexが5ならば、4が返ってきます)
以下のコードのように、選択した行をDataGridView上から削除する処理を記述しているのですが、新規行を選択していた場合、新規行の前の行が削除されてしまいます。
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
If DataGridView1.CurrentRow.IsNewRow = False Then
DataGridView1.Rows.RemoveAt(DataGridView1.CurrentCell.RowIndex)
End If
End Sub
ボタンクリックイベントが実行された直後から1行ずつ実行して試してみましたが、IsNewRowは最初からFalseとなっています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
3分あったら何をしますか?
カップ麺にお湯を入れて、できるまでの3分間で皆さんは何をしていますか?
-
【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
【お題】 ・ありそうだけど、絶対に無いことわざを教えてください。
-
【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
「出身中学と出身高校が混ざったような校舎にいる夢を見る」「まぶたがピクピクしてるので鏡で確認しようとしたらピクピクが止まってしまう」など、 これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
-
冬の健康法を教えて!
温度変化が大きくなり、風邪をひきやすいこれからの季節。 どんなことに気をつけていますか?
-
DataGridView 列ごとの入力制限
Visual Basic(VBA)
-
VB.net
Visual Basic(VBA)
-
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
-
4
DataGridViewに空白がある場合はエラーにしたい
Visual Basic(VBA)
-
5
DataGridViewのセル編集完了後に値を設定するには
Visual Basic(VBA)
-
6
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
7
C# DataTableに最後に追加した行をDataGridView上で選択状態にする方法は?
C言語・C++・C#
-
8
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
9
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
10
DataGridViewの、選択されている行を取り出したい
Visual Basic(VBA)
-
11
DataGridViewで入力チェック後、フォーカスをあてたい
Visual Basic(VBA)
-
12
データベースのデータをTextBoxに入力された値で検索しDataGridViewに表示する方法
Visual Basic(VBA)
-
13
Loadイベント中にほかのイベントを発生したくない
その他(プログラミング・Web制作)
-
14
DateTimePickerでに年月までしか選択できないようにしたいです。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
UMLでの例外処理
-
月度は何て読みますか?
-
【Excel】特定の文字を含むセル...
-
DoEventsがやはり分からない
-
VBAでループ内で使う変数名を可...
-
VBの質問#if 0 then ってどう...
-
Loadイベント中にほかのイベン...
-
Do~Loopした回数をカウントしたい
-
EXCEL VBA マクロ 実行する度に...
-
インタラクティブの反対語は?
-
FFTの結果ついて
-
switch の範囲指定
-
RPGプログラムの*HIVALについて
-
findは動くがfindnextがマクロ...
-
C言語 b += a ? 1 : 0; の意味
-
VB.NET DataGridViewでIsNewRo...
-
VB.NET Excelを読み込んでDataT...
-
ハードウェア処理とソフトウェ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
switch の範囲指定
-
UMLでの例外処理
-
VBの質問#if 0 then ってどう...
-
インタラクティブの反対語は?
-
EXCEL VBA マクロ 実行する度に...
-
DoEventsがやはり分からない
-
【Excel】特定の文字を含むセル...
-
月度は何て読みますか?
-
メルカリのメルカードで買い物...
-
findは動くがfindnextがマクロ...
-
お家デートをしててハグを長い...
-
iD
-
リョウ・・・量?料?
-
FFTの結果ついて
-
VB.NET Excelを読み込んでDataT...
-
Do~Loopした回数をカウントしたい
-
RPGプログラムの*HIVALについて
おすすめ情報