非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

C#: よく使う便利なプログラムまとめ

      2016/06/11

[ad#top-1]
 

C#でよく使うプログラムをまとめてみました。基本的なところですが便利なので僕は結構な頻度で使っています。

297799957852973959

 

 

 

自分のパスを取得する

これはほぼ毎回使っています。自分のプログラムが置かれたディレクトリの絶対パスを取得する方法で、外部ファイルを参照する際など必ずと言って良いほど使うんじゃないでしょうか。プログラミング言語に寄りますが単純にファイル名だけで参照しようとすると自分のフォルダを指す場合と自分のドキュメントフォルダにアクセスする場合があるので注意。また、一見自分のフォルダを指すと思っていたらexeファイルをリンクさせた場合、そのリンク場所を示すケースがあるので、意識的にパスを指定しないとバグに発展する危険があります。

で、C#の場合はこれが絶対パスを得るコードです。string型で返ってきます。

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

 

Excelの日付シリアル値を扱う

Excelとデータを共有するなど連携の際に、どうしても悩むのが日付の扱い。Excelの日付データって「日」を単位にしているので(時間は小数点以下)、ちょっと特殊です。でも、さすがC#はMicroSoftということもあって、ちゃんと用意されています。これがJavaだったら特殊な計算をするところでしたが、C#はメソッドに用意されているんです。

■Excelの日付シリアル値に変換
DateTime dt1 = DateTime.Now;
double oadate = dt1.ToOADate();

■Excelの日付シリアル値から日付変換
DateTime dt2 = DateTime.FromOADate(42119.2382648264);

 

DataGridViewをエクスローラっぽく見せる

まあ、これは使用頻度が限られていますが、C#って単純なテーブルを作ろうとすると、それに見合ったコントロールってないんですよね。JavaのJTableみたいなものがないんです。そこでDBテーブルを扱うDataGridViewを単純テーブルにして、さらにWindowsのエクルプローラっぽく見せる方法を紹介します。

DataGridView table = new DataGridView(){
   Font = new Font(“Meiryo UI”, 9),
   Dock = DockStyle.Top,
   ColumnCount = 5,
   SelectionMode = DataGridViewSelectionMode.FullRowSelect, //行選択
   AllowUserToResizeRows = false,   //行の高さをユーザーが変更できないようにする
   RowHeadersVisible = false,   //Rowヘッダーを隠す
   ReadOnly = true,      //編集不可
   AllowUserToAddRows = false,   //一番下の新しい行を非表示
   CellBorderStyle = DataGridViewCellBorderStyle.None, //グリッド非表示
   Parent = this,
};

 

これが元々のDataGridView。

g1

で、エクスローラっぽくしたのがこれ。

g2

 
[ad#ad-1]

スポンサーリンク

 - C#応用編