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

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

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

Re[2]: C#での書き方を教えてください。(元VB.NET)


(過去ログ 88 を表示中)

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

■52264 / inTopicNo.1)  C#での書き方を教えてください。(元VB.NET)
  
□投稿者/ アングラ (1回)-(2010/08/04(Wed) 17:02:56)

分類:[C#] 

2010/08/04(Wed) 17:04:07 編集(投稿者)
2010/08/04(Wed) 17:04:01 編集(投稿者)

環境はVisualStudio2008で言語はC#です。

VB.NETで作成したツールをC#に書き換えています。

そこで型変換でつまづいたのでC#での書き方を教えてください。
VB.NETのソース
Me.DgvList.SelectionMode = CType(False, DataGridViewSelectionMode)

※DgvListはDataGridViewです。

以上です、宜しくお願い致します。
引用返信 編集キー/
■52265 / inTopicNo.2)  Re[1]: C#での書き方を教えてください。(元VB.NET)
□投稿者/ よねKEN (567回)-(2010/08/04(Wed) 17:16:25)
よねKEN さんの Web サイト
> そこで型変換でつまづいたのでC#での書き方を教えてください。
> VB.NETのソース
> Me.DgvList.SelectionMode = CType(False, DataGridViewSelectionMode)

BooleanのFalseとDataGridViewSelectionMode列挙体との間に合理的な
変換ルールがありませんので、以下のように具体的にセットしたいメンバーを選んで代入してください。

this.DgvList.SelectionMode = DataGridViewSelectionMode.適切なメンバー; // 適切なメンバーのところを置き換えて!

おそらくVBは、
False → 0 → DataGridViewSelectionMode列挙体の値が0のメンバー
という変換がされていると予想されますが、MSDNの列挙体の説明には列挙体の
メンバーの実際の値は記載されていませんので、調査用のコードでも書いて
実際にどのメンバーが値0のメンバーに該当するのか調べてみてください。

DataGridViewSelectionMode列挙体
http://msdn.microsoft.com/ja-jp/library/3c89df86.aspx

引用返信 編集キー/
■52266 / inTopicNo.3)  Re[2]: C#での書き方を教えてください。(元VB.NET)
□投稿者/ よねKEN (568回)-(2010/08/04(Wed) 17:28:10)
よねKEN さんの Web サイト
No52265 (よねKEN さん) に返信
> おそらくVBは、
> False → 0 → DataGridViewSelectionMode列挙体の値が0のメンバー
> という変換がされていると予想されますが、

この予想があたっている場合は以下のように書くこともできます。

this.DgvList.SelectionMode = 0; // 値0→列挙体への変換には明示的なキャストは不要

しかし、先の投稿に書いたように適切なメンバーをきちんと指定するのがよいと思います。
#今回の質問に上がっているように、何がセットされているんだかわからない、という事態になるから。
引用返信 編集キー/
■52267 / inTopicNo.4)  Re[2]: C#での書き方を教えてください。(元VB.NET)
□投稿者/ 魔界の仮面弁士 (1732回)-(2010/08/04(Wed) 17:32:10)
No52265 (よねKEN さん) に返信
>>Me.DgvList.SelectionMode = CType(False, DataGridViewSelectionMode)
これは、元の VB コード自体にやや問題があります。

変換ルールについてはよねKENさんの投稿を参照いただくとして、
C# の構文に書き換えるのであれば、
 this.DgvList.SelectionMode = DataGridViewSelectionMode.CellSelect;
に相当します。元の VB の処理を無理矢理残すのであれば、
 this.DgvList.SelectionMode = (DataGridViewSelectionMode)Convert.ToInt32(false);
が近いかと。


> False → 0 → DataGridViewSelectionMode列挙体の値が0のメンバー
> という変換がされていると予想されますが、MSDNの列挙体の説明には列挙体の
> メンバーの実際の値は記載されていませんので、
値 0 に相当する DataGridViewSelectionMode は、CellSelect ですね。

> 調査用のコードでも書いて
VB の IntelliSense だと、列挙体の値も表示されますが、
C# の IntelliSense では表示されないんですよね…。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -