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

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

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

Re[3]: DataGridView内セルの比較について


(過去ログ 98 を表示中)

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

■58477 / inTopicNo.1)  DataGridView内セルの比較について
  
□投稿者/ 霧文字 (1回)-(2011/04/08(Fri) 11:41:21)

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

2011/04/08(Fri) 11:56:20 編集(投稿者)
2011/04/08(Fri) 11:56:12 編集(投稿者)

はじめまして

DataGridViewのCellValidatingでのことなのですが

If e.FormattedValue.ToString > dgv_給与計算(12, line).Value.ToString Then

e.FormattedValue.ToString には 2
dgv_給与計算(12, line).Value.ToString には 12

が入っているのですがなぜかelseにいってしまいます。
私がif文やDataGridViewの常識を知らないだけかもしれませんが
どうしてelseに行ってしまうのか教えていただけないでしょうか。

お願いします
引用返信 編集キー/
■58478 / inTopicNo.2)  Re[1]: DataGridView内セルの比較について
□投稿者/ shu (611回)-(2011/04/08(Fri) 12:23:21)
No58477 (霧文字 さん) に返信

> DataGridViewのCellValidatingでのことなのですが
>
> If e.FormattedValue.ToString > dgv_給与計算(12, line).Value.ToString Then
>
> e.FormattedValue.ToString には 2
> dgv_給与計算(12, line).Value.ToString には 12
>
> が入っているのですがなぜかelseにいってしまいます。
> 私がif文やDataGridViewの常識を知らないだけかもしれませんが
> どうしてelseに行ってしまうのか教えていただけないでしょうか。

なぜ2の方が12より小さいのにthenの方を処理したいのか分かりませんが、
ToStringで両方文字列にしているのに"2" > "12"が成り立たないのは不思議ですね。
引用返信 編集キー/
■58481 / inTopicNo.3)  Re[1]: DataGridView内セルの比較について
□投稿者/ sender (1回)-(2011/04/08(Fri) 14:22:52)
No58477 (霧文字 さん) に返信

> If e.FormattedValue.ToString > dgv_給与計算(12, line).Value.ToString Then
>
> e.FormattedValue.ToString には 2
> dgv_給与計算(12, line).Value.ToString には 12

これは本当ですか?
左右辺の値をどのように調べたのでしょうか?
まさか、e.FormattedValue.ToString = " 2"(スペースが入っている)なんてことはないですか?
引用返信 編集キー/
■58527 / inTopicNo.4)  Re[2]: DataGridView内セルの比較について
□投稿者/ くり太郎 (16回)-(2011/04/12(Tue) 14:02:21)
くり太郎 さんの Web サイト
No58481 (sender さん) に返信

VB って文字列型どうしの大小比較演算ができるんですね。
知りませんでした。

>If e.FormattedValue.ToString > dgv_給与計算(12, line).Value.ToString Then

それぞれの値を一度変数にとって、各変数の値を調べてみたとき、sender さんの言うように空白が入っていたり、想定外の値が入っていないのかを再度確認してみてはどうでしょうか?

引用返信 編集キー/
■58530 / inTopicNo.5)  Re[3]: DataGridView内セルの比較について
□投稿者/ shu (620回)-(2011/04/12(Tue) 14:26:13)
> VB って文字列型どうしの大小比較演算ができるんですね。
> 知りませんでした。

booleanもdateも出来ますよ。

Dim a as boolean = true
Dim b as boolean = false

a < b のように出来ます。※使うことはないと思いますが。


Dim c as Date = #1/1/2011#
Dim d as date = #2/1/2011#

c < d のように出来ます。


自作クラスでもoperator <とoperator >を定義すれば比較を追加することが出来ます。


余談でしたmm
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -