DelphiからC#へ移行するときに思ったこと、つまづいたことなどの覚書。
- WindowsMediaPlayer1.controls.play → axWindowsMediaPlayer1.CtlControls.play();
Controlsというのが既にあるのでそれとバッティングしないようにという配慮で頭にCtlをつけたのだろうか。
でもC#って大文字と小文字を区別するのだから素直にcontrolsでいいんじゃないのか?と思ったり。
- ComboBox1.Items[0] → ComboBox1.Items[0].ToString();
Items.String[0]というような取り出し方ができるのかと思っていたらToString()をつけなければならなかった。
それはまぁよいとして。
C#ってなんだか後ろに"()"をつけるのが多い。
メソッドとか関数なんかは全部つけなきゃいけないんかな。
- TStringGridとDataGridView。
StringGrid1.Cells[0, 0] := 'Test';
は
dataGridView1.Rows[0].Cells[0].Value = "Test";
というようになる。
ヘッダーがある場合でもRows[0].Cells[0]はヘッダーのデータにはならずデータエリアの一番左上のデータになる。
- メインメニューはDelphiの場合はフォームのクライアント領域外になるがC#の場合はフォームのクライアント領域内に置かれる。
よって、例えばメインメニューがあってパネルをクライアントいっぱいに広げる場合、パネルのTopはメインメニューの高さの値に、パネルの高さをはフォームのクライアントの高さからメインメニューの高さを引いた値をセットしないといけない。