読者です 読者をやめる 読者になる 読者になる

Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

C#で日本語ソースコードを避ける方法 ~メニュー&データセット/データテーブル~

スポンサードリンク

f:id:fa11enprince:20150730082420j:plain
備忘録を兼ねて書きます。C#でFormを日本語で作っていると、
C#の自動生成コードがそのままで日本語になってしまうので、
それらを使う側のコードも日本語を使うことになり、
実害はないんだけれどもこれは精神衛生上よろしくない…
なんて思いの方は多いかと思います(そうでもない?)。
ソースコードは英語オンリーにしたい!コメントは除く……。
できればコメントも英語にしたいですが(笑)
Visual Basicでもほとんど一緒のはずです。

private void ファイルFToolStripMenuItem_Click(object sender, EventArgs e)
{

}

って作られるのがダサくてやだよ~な人向けです。

メニュー編

メニューを下記のように「ファイル(&F)」として作ったとします。
f:id:fa11enprince:20140420061031p:plain

それでイベントハンドラを作る場合はそこのファイル(&F)の部分をダブルクリックすると思います。
そうすると……Form1.csにはこんなふうに日本語メソッドが…。
f:id:fa11enprince:20140420061150p:plain

これは……
ということで、これは簡単に英語に修正できます。
フォームデザイナ上で「ファイル(&F)」をクリックしてでるプロパティの(Name)を変更します。
変更前は勝手にイベントハンドラの名前をVisual Studioが作ってくれます。しかしダサい。
f:id:fa11enprince:20140420061315p:plain

変更します。
f:id:fa11enprince:20140420061434p:plain

そうすると、デザイナ上で一旦さっきのイベントハンドラを取り消して、
もう一回ダブルクリックでイベントハンドラを作ると、
f:id:fa11enprince:20140420061520p:plain

やったー英語だね(^o^)!なわけです。

データセット/データテーブル編

最初ぼくはこれをどうやって英語にするのかわかりませんでした。いろいろイジイジしてみつけました。このへんの細かい解説はMSDN見ればどっかに書いてるのかな?
ちなみにここでのサンプルはおもいっきり書籍のを参考にしたものです。
作って覚えるVisual C# 2010 Express 入門

作って覚える Visual C# 2010 Express 入門

作って覚える Visual C# 2010 Express 入門

C#の取っ掛かりに立ち読みして良さそうだなと思った書籍です。
もちろん、文法事項はこの書籍だけでは足りないので別途書籍を買うのがいいと思われますが。
ほかにはパーフェクトC#を買いました。

改訂3版 パーフェクトC# (PERFECT SERIES 1)

改訂3版 パーフェクトC# (PERFECT SERIES 1)

最近はEffective C#とかが気になってます。C#の良い書籍知りませんか?

Effective C# 4.0

Effective C# 4.0

話がそれましたが、データテーブルを下記のようにやっぱり英語で作ります。
f:id:fa11enprince:20140420061725p:plain
ここで日本語を使うとやはり自動生成コードに日本語が入ってしまい、使う側も日本語コードになってしまいます。

それでこのデータテーブルを使う側のコードのデータグリッド(DataGridView)にバインドしてやります。
f:id:fa11enprince:20140420062831p:plain

が、しかしやっぱり英語のままです。
そこで、このDataGridViewのプロパティのコレクションというところの右端の「...」となっているところをクリックします。ちょっと画像は見切れちゃってますが。
f:id:fa11enprince:20140420062957p:plain

そうするとモーダルウィンドウが出て、何やら設定が出来る画面が出てきます。
f:id:fa11enprince:20140420063211p:plain
一個一個選択します。
まずはこの例の「RegisteredDate」を選択します。
いじるのはDataPropertyNameではありません。私は最初コレかと思っていましたが、
スクロールを下まで動かしていくと、「HeaderText」があります。
f:id:fa11enprince:20140420063234p:plain

これを日本語に修正します。
f:id:fa11enprince:20140420063300p:plain

そんな要領で全部直します。
f:id:fa11enprince:20140420063349p:plain

それで、OKを押すとちゃんとヘッダー部が日本語になります。
f:id:fa11enprince:20140420063419p:plain

データセットを使う側のコードも日本語じゃなくて済みます。めでたしめでたし。
f:id:fa11enprince:20140420063515p:plain

ちなみにデータセットを日本語で作ってしまうと上記コードが
dataGridView.Rows[nowRow].Cells[(int)MoneyData.登録日].Values.ToString()
のようになってしまいます。これはやだなーー。と変な考えの持ち主の僕でした。

何気にC#初投稿……C#歴は3ヶ月くらいです(汗)
Unityでゲーム作りやってみたい……。