C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: DataGridViewの、Nothingのセルを取得したい


(過去ログ 129 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■76613 / inTopicNo.1)  DataGridViewの、Nothingのセルを取得したい
  
□投稿者/ hy (1回)-(2015/07/28(Tue) 07:46:05)

分類:[VB.NET/VB2005 以降] 

「DataGridViewの、アクティブなセルがNothingかどうか?」という
旨のIf文を作りたいと思ってるのですが、

If DataGridView1.CurrentCell.Value = Nothing then

だとうまくいきませんでした…
どなたかお教え願います。
よろしくお願いいたします。
引用返信 編集キー/
■76614 / inTopicNo.2)  Re[1]: DataGridViewの、Nothingのセルを取得したい
□投稿者/ 魔界の仮面弁士 (426回)-(2015/07/28(Tue) 08:40:27)
2015/07/28(Tue) 08:58:38 編集(投稿者)

No76613 (hy さん) に返信
> 「DataGridViewの、アクティブなセルがNothingかどうか?」という
セルの値が Nothing かどうか、なら
  If DataGridView1.CurrentCell.Value Is Nothing Then 
もしくは
  If IsNothing(DataGridView1.CurrentCell.Value) Then
あるいは
  If Object.Equals(Nothing, DataGridView1.CurrentCell.Value) Then
ですね。


> If DataGridView1.CurrentCell.Value = Nothing then
Nothing を「=」で比較した場合は、『その型の初期値』を意味します。

Value の中に Integer 値が入っていた場合は、「0 か否か」の意味に。
Value の中に Date 値が入っていた場合は、「西暦1年1月1日0時0分0秒ジャスト か否か」の意味に。
Value の中に String 値が入っていた場合は、「空の文字列か否か」の意味に。

なお、「=」で比較できるのは、比較演算子 Equals が実装されている型に
限ります。そのため、Value に DBNull が入っているような場合には、
If .Value = Nothing Then での比較は失敗します。
引用返信 編集キー/
■76615 / inTopicNo.3)  Re[1]: DataGridViewの、Nothingのセルを取得したい
□投稿者/ みい (21回)-(2015/07/28(Tue) 09:05:34)
No76613 (hy さん) に返信
> 「DataGridViewの、アクティブなセルがNothingかどうか?」という
> 旨のIf文を作りたいと思ってるのですが、
>
> If DataGridView1.CurrentCell.Value = Nothing then
>
> だとうまくいきませんでした…
> どなたかお教え願います。
> よろしくお願いいたします。
なおセルの値ではなくて、アクティブなセルがあるかどうかであれば
If DataGridView1.CurrentCell = Nothing Then
になります。

引用返信 編集キー/
■76616 / inTopicNo.4)  Re[2]: DataGridViewの、Nothingのセルを取得したい
□投稿者/ 魔界の仮面弁士 (427回)-(2015/07/28(Tue) 09:30:20)
No76615 (みい さん) に返信
> なおセルの値ではなくて、アクティブなセルがあるかどうかであれば
> If DataGridView1.CurrentCell = Nothing Then
> になります。

いえ、違います。その場合も Is で比較せねばなりません。
(そもそも DataGridViewCell は、'=' 演算子に対応していなかったりします)

すなわち No76614 と同様に、
 If DataGridView1.CurrentCell Is Nothing Then
 If IsNothing(DataGridView1.CurrentCell) Then
 If Object.Equals(Nothing, DataGridView1.CurrentCell) Then
などと記述するということになりますね。

なお、アクティブなセルが無いことを判断するのであれば、
DataGridView1.CurrentCellAddress を使うこともできます。
このプロパティはアクティブなセルが無い場合、「New Point(-1, -1)」を返します。
引用返信 編集キー/
■76619 / inTopicNo.5)  Re[3]: DataGridViewの、Nothingのセルを取得したい
□投稿者/ みい (22回)-(2015/07/28(Tue) 10:46:31)
No76616 (魔界の仮面弁士 さん) に返信
> ■No76615 (みい さん) に返信
>>なおセルの値ではなくて、アクティブなセルがあるかどうかであれば
>>If DataGridView1.CurrentCell = Nothing Then
>>になります。
>
> いえ、違います。その場合も Is で比較せねばなりません。
> (そもそも DataGridViewCell は、'=' 演算子に対応していなかったりします)
>
> すなわち No76614 と同様に、
>  If DataGridView1.CurrentCell Is Nothing Then
>  If IsNothing(DataGridView1.CurrentCell) Then
>  If Object.Equals(Nothing, DataGridView1.CurrentCell) Then
> などと記述するということになりますね。
>
> なお、アクティブなセルが無いことを判断するのであれば、
> DataGridView1.CurrentCellAddress を使うこともできます。
> このプロパティはアクティブなセルが無い場合、「New Point(-1, -1)」を返します。
あ、そうですね。すみませんm(__)m
引用返信 編集キー/
■76639 / inTopicNo.6)  Re[4]: DataGridViewの、Nothingのセルを取得したい
□投稿者/ hy (2回)-(2015/07/28(Tue) 21:09:59)
No76619 (みい さん) に返信
> ■No76616 (魔界の仮面弁士 さん) に返信
>>■No76615 (みい さん) に返信
> >>なおセルの値ではなくて、アクティブなセルがあるかどうかであれば
> >>If DataGridView1.CurrentCell = Nothing Then
> >>になります。
>>
>>いえ、違います。その場合も Is で比較せねばなりません。
>>(そもそも DataGridViewCell は、'=' 演算子に対応していなかったりします)
>>
>>すなわち No76614 と同様に、
>> If DataGridView1.CurrentCell Is Nothing Then
>> If IsNothing(DataGridView1.CurrentCell) Then
>> If Object.Equals(Nothing, DataGridView1.CurrentCell) Then
>>などと記述するということになりますね。
>>
>>なお、アクティブなセルが無いことを判断するのであれば、
>>DataGridView1.CurrentCellAddress を使うこともできます。
>>このプロパティはアクティブなセルが無い場合、「New Point(-1, -1)」を返します。
> あ、そうですね。すみませんm(__)m


お二方とも、回答ありがとうございます!
解決いたしました!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -