- PR -

datagridviewでnullのセルを空白文字にしたい

1
投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2005/08/25
投稿数: 145
投稿日時: 2008-06-18 18:28
datagridviewの何も記入されていないセルはnullになると思います。
なので、DefaultCellStyleのNullValueのところで""を入れれば
普通の空白になると思いましたが文字どおり
""が表示されてしまいました。
nullでもなく""でもなく空白にするにはどうしたらよいのでしょうか?

追記します。空白文字というのは半角スペース・全角スペースのことではないです。
stiring = "";
としたときのことです。
表現がわかりづらくてすいません。

[ メッセージ編集済み 編集者: 未記入 編集日時 2008-06-18 18:49 ]
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2008-06-19 08:59
Gridへの表示を空文字にする?
最終的にDBに反映されっる値を空文字列にする?

前者なら、CellFormattingイベントで置換可能。
テッテ
ベテラン
会議室デビュー日: 2008/03/16
投稿数: 91
投稿日時: 2008-06-19 09:20
デザイナ上で空文字を入れたいという意味だと思うのですが、
これはできないような気がします。
コードで書けばもちろん可能ですが。

何故、空文字を設定したいのでしょうか?
かずくんさんもおっしゃっていますが、
その理由によっては別の方法もありそうです。
未記入
大ベテラン
会議室デビュー日: 2005/08/25
投稿数: 145
投稿日時: 2008-06-20 16:26
かずくんさん、テッテさん書き込みありがとうございます。

僕がしたかったのは表示で空文字にしたいのではなく
dataGridView1[0, 0].Value.ToString()
こんなふうに参照してToStringするときにnullだとエラーに
なってしまうので、nullのときは""を代入している処理を
省きたかったので、質問させて頂きました。
質問が曖昧ですいませんでした。
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-06-20 17:37
こんなんでどうでしょ。
キャストの場合は、dataGridView1[0, 0].Value に入れた値の元の型がStringでないとだめですが。

コード:
' VB
Dim s1 as String = CStr(dataGridView1[0, 0].Value)
Dim s2 as String = Convert.ToString(dataGridView1[0, 0].Value)

// C#
String s1 = (String)dataGridView1[0, 0].Value;
String s2 = Convert.ToString(dataGridView1[0, 0].Value);

未記入
大ベテラン
会議室デビュー日: 2005/08/25
投稿数: 145
投稿日時: 2008-06-23 09:30
rainさん、アドバイスありがとうございます。

(String)dataGridView1[0, 0].Value

この方法ですっきりうまくいきました。
嬉しいです。
あつ
会議室デビュー日: 2009/03/09
投稿数: 1
投稿日時: 2009-03-09 16:43
未記入さん私も似たようなことで悩んでおり、列の合計を出したいのですが、未入力のセルがあると「演算子 '+' は 型 'Decimal' と 型 'DBNull' に対して定義されていません。」とエラーになってしまい対処法が分かりません。具体的にどのように対処したのでしょうか?
レイル
常連さん
会議室デビュー日: 2008/10/14
投稿数: 37
投稿日時: 2009-03-10 10:44
VBで申し訳ないですが、これでいかがですか?

コード:
        '1行目のcell合計
        For Each cell As DataGridViewCell In View.Rows(0).Cells
            If IsNothing(cell.Value) = False Then
                If Integer.TryParse(cell.Value.ToString, tmp) = True Then
                    sum += tmp
                End If
            End If
        Next

1

スキルアップ/キャリアアップ(JOB@IT)