• ベストアンサー

C# dataGridViewの値だけクリア

DataSorceにDataTableを指定したdataGridViewの行や列を消さずに表の中身の値だけクリアするにはどうしたらいいのでしょう。 DataTable.Clear()メソッドを使用したら列ヘッダーは残ったのですが、全ての行が行ヘッダーごと消えてしまいました。

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

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1621/5657)
回答No.1

それはDataTable.Clear()使ったら行すべて消すので消えて当然だと思いますが。 各行のカラムの値をnullに設定していけばよろしいかと。

ffddffdd
質問者

お礼

参考になりました。

関連するQ&A

  • DataGridViewでコードで値を入力したい

    VB2005のDataGridViewですが、行と列を指定して そのセルに値を入力したいと思いますが、どのプロ パティに行番号・列番号を入れればいいのでしょうか?

  • DataGridViewの行ごとにヘッダを取り付けたい

    DataGridViewの行ごとにヘッダを取り付けたい DataGridViewコントロールを使用しています。 出来れば(見栄えを良くするために)、図の矢印で指し示す部分に文字列を表示させたいです。 列にはカラムヘッダが存在しますが、行でも似たようなことをしたいのです。 やり方がわかる方、教えていただけませんか? よろしくお願いします。

  • DataGridViewのソートを止めたい

    いくつか同じ質問は見受けられましたが、自分の環境ではどれも解決に至っていなく困っていますので、質問させてください。 DataGridViewのDataSourceにDataTableを設定して使っています。 このDataGridViewは、編集もできソートもできます。ただ、ソートは、ヘッダをクリックした時など、ユーザーが意図したときだけ起きて欲しく、例えばソート列の値を編集したときなどに、勝手に位置が変わってしまします。 これを、止める方法はないのでしょうか。しかも、それまでに任意のソートを繰り返した後の、編集を加える直前の順番を保ったままです。 ソートを解除するという方法がありましたが、ユーザーが編集直前までに整えた順番をクリアして、最初の状態に戻してしまいます。それでは、都合が悪いのです。 本当に困り果てています。どうか、分かる方教えていただけませんか?

  • DataGridViewで変更した値を反映させたい。

    VB2005、SqlServer2005環境です。 デザイナ上で、DataTableをドラッグしてやると、自動的に バインドされたDataGridViewが出てくれるので、その方法で DataGridViewを1つ設置しました。 このDataGridViewの表の値を変えた時、それを実際のDBのテーブルにも 反映させたいなと思ってます。 これを実現するための方法を教えていただけないでしょうか? バインドされているので、保存できればそのまま更新されるような イメージなのですが…その方法がわかりません。 宜しくお願いします。

  • VB.netのDataGridViewについて

    VB.netのDataGridViewについての質問です。 DataGridViewで出力された行を選択して、 その行の値をテキストボックスなどに出力させることは可能なのでしょうか? やりたいことは 1.データベースより取得してきたDatatableをDataGridViewに出力 2.出力されたDataGridViewの行を選択する 3.その選択された行の項目(複数)の値を画面上の個々の   テキストボックスなどに反映させる です

  • C# DataGridViewのループ処理

    DataGridViewの特定列の値を1行ずつ取得し 入力データが全角文字か入力チェックを行いたいと考えています。 DataGridViewの特定列を1行ずつ確認するループ方法を ご教示頂ければと思います。

  • DataGridViewで行選択して、対応するDataTableの行を得るには?

    いつもお世話になっております。VB2005環境です。 DataGridViewの行を選択したときに、そのソースであるDataTableの同じ行のデータを参照するには、どうしたらいいでしょうか。DataTableのデータをまるごとDataGridViewに表示しているわけではないので、必要に応じて直接DataTableから取得したいです。とても初歩的な質問だと思うのですが・・・。 DataGridView1.DataSource = DataTable  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ Dim r As Integer = DataGridView1.CurrentCell.RowIndex Dim str As String str = DataTable.Rows(r)("項目名") MsgBox(str)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ このように行インデックスを取得してやってみたのですが、これだとDataGridView上でソートすると行番号が変わってしまい、DataTable側の対応する行のデータが得られません。 もう少し詳しく現状を書くと、まずCSVファイルからデータをロードして、DataTableに渡しています。そして、その内容をDataGridViewに表示しているのですが、表示する内容はデータテーブル通りの構造ではなく、表示する必要がある項目だけを選んで、1つずつカラムを追加してバインドいます。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ’自動で列を追加しないようにする DataGridView1.AutoGenerateColumns = False ’データソースを指定する DataGridView1.DataSource = DataTable ’1つ1つ順番などを変えながら列を追加していく Dim column1 As New DataGridViewTextBoxColumn() DataGridView1.Columns.Add(column1) column1.Name = "Date" column1.HeaderText = "日付" column1.DataPropertyName = "F4" Dim column2 As New DataGridViewTextBoxColumn() DataGridView1.Columns.Add(column1) column1.Name = "Locatoin" column1.HeaderText = "場所" column2.DataPropertyName = "F1" ・ ・ ・  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ こんな感じでなので、表示されていない列のデータについては、必要に応じて直接DataTableから取得したいと思います。アドバイスよろしくお願いいたします<(_ _)>

  • アクティブな行の特定範囲セルの値をクリアしたいのですが

    こんにちは 仕事で表を作っているのですが以下の処理が出来なくて困っています。。。 A列からS列まで項目が入った表で、行は随時増えていきます。 【選択した行】の【K列からS列までの値をクリア】したいのですが どうすればよいのでしょうか? (A列~J列の値はクリアされないようにしたいです) どうかよろしくお願いいたします

  • DataGridViewから値取得

    DataGridViewにボタンと項目2つが配置されています。 DataGridView1 DataGridView1.Columns("btn").HeaderText = "ボタン" DataGridView1.Columns("item1").HeaderText = "アイテム1" DataGridView1.Columns("item2").HeaderText = "アイテム2" ボタンを押すと、押した行のレコードを取得したいです。 ボタンのところを押下すると、 イベントハンドラで何行目か分かるサンプルをネットで見つけました。 惜しいですが、やりたいのと少し違いました。 'CellContentClickイベントハンドラ Private Sub DataGridView1_CellContentClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick Dim dgv As DataGridView = CType(sender, DataGridView) Dim test_item1 As String Dim test_item2 As String ' "btn"列ならば、ボタンがクリックされた If dgv.Columns(e.ColumnIndex).Name = "btn" Then MessageBox.Show((e.RowIndex.ToString() + "行のボタンがクリックされました。")) End If ' ここに押された行のitem1の値をセット ' test_item1 = (A) ' ここに押された行のitem2の値をセット ' test_item2 = (B) End Sub (A)、(B)に何を記述すれば値を取得できますか?

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

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

専門家に質問してみよう