• ベストアンサー

カレントセルの値をクリアしたい

VB2005環境です。 ボタンをクリックした時、DataGridViewの、カレントセルの値を 削除したいと考えています。 単純に Me.TestDataGridView.CurrentCell.Value = "" としたところ、エラーが出てしまい、うまくいきません。 (System.ExceptionはInt32の有効な値ではないと怒られる) カレントセルの値をクリアするには、どのようにしたら良いのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Me.TestDataGridView.CurrentCell.Value = DBNULL.Value ですね。

noname#32335
質問者

お礼

お礼が遅れまして申し訳ありません。 無事に解決できました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • cellをenterで横移動

    DataGridViewのcellをEnterキーで横移動しています。Enterキーのみ続けて押している場合は、横へ動くのですが、CurrentCellの値を変更しEnterキーを押した場合、新規行のcellに値を入力しEnterキーを押した場合、横ではなく真下のcellへ移動してしまいます。 原因がわかりません。 Private Sub DataGridView1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown Try If (e.KeyCode = Keys.Enter) Then If (DataGridView1.CurrentCell.ColumnIndex <> DataGridView1.ColumnCount - 1) Then DataGridView1.CurrentCell = DataGridView1(DataGridView1.CurrentCell.ColumnIndex + 1, DataGridView1.CurrentCell.RowIndex) e.Handled = True ElseIf (DataGridView1.CurrentCell.RowIndex <> DataGridView1.RowCount - 1) Then DataGridView1.CurrentCell = DataGridView1(1, DataGridView1.CurrentCell.RowIndex) Else DataGridView1.CurrentCell = DataGridView1(1, 0) e.Handled = True End If End If Catch ex As Exception MessageBox.Show(ex.Message) End Try

  • DataGridViewの値を別フォームに

    こんにちは。 1つ教えて頂けないでしょうか。 Form1にDataGridViewがあり、どれか1行ダブルクリックすると Form2にForm1のDataGridViewの7列目の値の条件で抽出した結果を Form2のDataGridViewに表示したいのです。 Form1からの受け渡しデータはForm2のテキストボックス(条件)に表示させ 受け渡されて来たときは表示ボタンをクリックしなくてもForm2の DataGridViewは表示したいのです。 それぞれのFormは作成し、Form1は Private Sub dgv_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellDoubleClick Dim f As New Form2 f.txt条件 = Me.DataGridView.SelectedRows(0).Cells(7).Value f.ShowDialog() End Sub とコーディングしました。 Form2は表示されるのですが、データの受け渡しができていないし f.txt条件 = Me.DataGridView.SelectedRows(0).Cells(7).Valueの部分でキャストできませんのエラーに なります。 DataGridViewの選択した値を別のフォームに渡し、そのまま別フォームのDataGridViewを表示させたいのですが。 わかる方おられましたら、教えて頂けないでしょうか。 大変申し訳ありませんが、どうぞよろしくお願いします。

  • DataGridViewの特定のセルで選択状態を保ちたい VB2005

    DataGridViewの件で質問したいのですが。 よろしくお願いします。 VB2005で、DataGridViewの特定のセルでカーソルがとどまる(選択状態)ようにしたいのですが 思ったように動いてくれません。例えば、下のようなDataGtridViewがあったとして, 例 ------------------ |ID | X | Y | ------------------ |001| 100 | | ------------------ |002| 150 | | ------------------ |003| 105 | | ------------------ ID が002の行で、Y列のセルにカーソルが入りXと違う数を入力したら、メッセージを 表示させて、そのセルにカーソルがとどまる処理を作りたいのですが。下の行のセルに 移動してしまいます。  DataGridView_CellEndEditイベントやDataGridView1_CellValueChangedなどで カーソルがとどまる処理をしているつもりなのです下の行に移動してしまいます。 DataGridViewの初期設定の問題でしょうか? Private Sub DataGridView1_CellValueChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged Dim DgvRow As Integer '行をセット DgvRow = e.RowIndex ' X と Yが異なれば、メッセージ表示 If DataGridView1("X", e.RowIndex).Value <> DataGridView1("Y", e.RowIndex).Value Then MsgBox("X <> Y", MsgBoxStyle.OkOnly) Me.DataGridView1.CurrentCell = Me.DataGridView1("Y", DgvRow) ' これも駄目だった ↓ 'Me.DataGridView1.CurrentCell = Me.DataGridView1("Y", e.RowIndex - 1) End If End Sub アドバイスいただけたら幸いです。よろしくお願い致します。 開発環境 VB2005 Visual Studio 2005 Standard Edition(SP1) Windows XP Pro SP2

  • DataGridViewのカラムを、見た目だけ消したい。

    VB2005、SQLServer2005環境です。 DataGridViewに、DBから取得した値を表示させ、それを削除 できるようなプログラムを作っています。 DataGridViewの一番左側にキーとなるカラムがあるのですが、 それを見た目だけ消したいと考えています。 キー 名前 ---------------- 1 タロウ 2 ハナコ 3 ユウジ 例えば、このような表であれば、見た目に表示されるのは 名前だけで、削除時は内部的にキー列を参照したいのです。 Me.DataGridView1.Columns(0).Visible = False とすることで、とりあえずは消えたのですが、 Me.DataGridView1.CurrentRow.Cells(0).Value.ToString で値を見てみると、名前列の値が取れていました。 見ためだけ列を消す方法はないでしょうか? ご教授ください。

  • DataGridViewで、選択した行の値を取得したい。

    VB2005環境です。 VB2005で、選択した行の、特定の列から値を取って、 テキストボックスに出力したいと思っています。 Itemプロパティかと思い、 TxtBox1.Text = Me.DataGridView1.Item _(0,Me.DataGridView1.CurrentRow.Index).ToString と記述してみました。1列目の、選択した行と交わるセルの 値が取れるかと思いきや、うまく取得できません。 方法を教えていただけないでしょうか? よろしくお願いします。

  • DatagridViewの値確定

    VB2005です。 DataGridViewを私用しています。 EditModeはEditOnEnterです。 特定のセルの値を変更し、カーソルがその列から移動していない状態で、 Buttonコントロールをクリックすると、ボタンクリック時のイベントの前に、 そのセルのCellValueChangedイベントが発生します。 が、同じ要にセルの値を変更し、カーソルがその列から移動していない状態で、 HScrollBarコントロールをクリックすと、CellValueChangedイベントが発生しません。 そうすると、変更した値が反映されず、前の値で処理が進んでしまいます。 HScrollBarコントロールをクリックしたときも、DataGridViewの値が 確定される方法はないでしょうか。 よろしくお願いいたします。

  • カレント行を削除する。

    VB.NET2005、oracle10gにて作成しています。 DataGridViewの選択した行を【削除】ボタンを押すと削除したいのですが、うまくいきません。 参考書、ネット等を調べ参考にかなり悩んでいるんですがうまくいきません。どんな小さなことでもお気づきの点がありましたら教えていただけないでしょうか? よろしくお願いします。 Dim rc As Integer If Nothing IsNot DataGridView1.CurrentCell Then Select Case MessageBox.Show("削除します。よろしいですか?", "確認", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) Case Windows.Forms.DialogResult.Yes rc = DataGridView1.CurrentCell.RowIndex DataSet1.Tables("MASTR_M").Rows.Find(rc) Me.KAMOKU_MTableAdapter.DeleteQuery(Kaisya_cd, DataGridView1.CurrentRow.SetValues("CD"), DataGridView1.CurrentRow.SetValues("NAME")) Me.KAMOKU_MTableAdapter.Update(Me.DataSet1.MASTR_M) Me.KAMOKU_MTableAdapter.FillBy(Me.DataSet1.MASTR_M, CD) MessageBox.Show("削除しました。") Case Windows.Forms.DialogResult.No Exit Sub End Select Else MessageBox.Show("削除する行を指定してください。") Exit Sub End If

  • DataGridViewの複数の指定行を取込には

    Win2003SERVER(R2)+SRLServer2000+VB.NET2008の 組合せでやっています。 VBは初心者です。 今、DataGridView1で下記の様なデーターがフォームに 表示されています。 A B C 1 11 AAA 2 22 BBB 3 33 CCC 5 55 DDD 6 66 EEE この画面でCtrlキーを押しながら Aの列の 1 3 5の列を選択しました。 その状態でBotan1を押したとき Bの列の 11 33 55 を変数 B(1) B(2) B(3) に呼込みたいのですが どうしたらいいのでしょうか 1行だけの場合、 B(1)=Me.DataGridView1(1, Me.DataGridView1.CurrentCell.RowIndex).Value をで良いと思っていますが 複数の場合はどうしたらいいのでしょうか。 ご存知の方、教えてください。

  • DataGridViewのセルをenterキーで横移動したいです。

    VB.NET2005にてDataGridviewのセルを横移動させたいんです。 いろんな物を参考に以下のプログラムを何とかプログラムを組んでみましたが、ビルド時セル(0,0)→セル(0,1)→セル(0,2)→セル(0,3)・・・と1行目がenterキーで移動できず、2行目へ下がってしまいます。2行目からは横移動できるようになりました。 1週間近く試行錯誤しましたが、うまく動きません。 訂正箇所を教えていただけないでしょうか? よろしくお願いします。 いまの行と列の取得 Dim currentRow As Integer = Me.DataGridView1.CurrentRow.Index Dim currentColumn As Integer = Me.DataGridView1.CurrentCell.ColumnIndex Dim nextColumn As Integer = currentColumn + 1 Dim nextRow As Integer = currentRow '押したキーがENTERだったら Dim t As Object t = e.KeyCode() If t = 13 Then If nextColumn = 6 Then '列数が最終列を超えたとき nextColumn = 0 '最初の列数へ Else nextRow -= 1 End If MessageBox.Show("nextColumn =" & nextColumn & "nextRow = " & nextRow) Try Me.DataGridView1.CurrentCell = Me.DataGridView1(nextColumn, nextRow) Catch If Not (Me.DataGridView1.CurrentCell Is Nothing) Then nextColumn = 0 nextRow = 0 Me.DataGridView1.CurrentCell = Me.DataGridView1(nextColumn, nextRow) Exit Sub Else Me.DataGridView1.CurrentCell = Me.DataGridView1(nextColumn, nextRow) Exit Sub End If End Try End If

  • 別フォームからdatagridviewの削除

    vb.netで、form1のdatagridviewを、form2のボタンをクリックした際に、datagridviewのrowを削除したいのですが、newでform1を参照して、datagridviewのrowを削除しようとしたのですが、form1のdatagridviewの情報をform2で取得できなくて、実行時エラーになってしまい困っています。 form1のdatagridviewのデータは、csvファイルを接続して、loadイベントで表示させるようにしています。 わかるかたいらっしゃいましたら、教えていただけると助かります。 宜しくお願いいたします。