2010年8月11日水曜日

開発際に要注意点

2010年8月11日
1.Formの派生クラスでLoadイベントを使わずにOnLoadイベントをOverrideする

class
MyForm : System.Windows.Forms.Form {
    private void MyForm_Load(object sender, EventArgs e) {
// DoSomething
}
}
ではなく
class MyForm : System.Windows.Forms.Form {
protected override void OnLoad(EventArgs e) {
base.OnLoad(e);

// DoSomething
}
}
これにはいくつかの理由があって、

1. .NETのクラスライブラリのガイドラインにそうしろと書いてある。
2. イベントは基本的に外部に知らせるためのものであり、内部で使うものではない。
3. OnLoadメソッドがLoadイベントに登録されたイベントハンドラを呼び出している。

2.is演算子の否定
if (!(obj is MyObject))

3.画面レイアウトを動的変えたいのは、複数のパネルを使って、実行際にパネル、コントロール
の表示、非表示を変えて達成できる。
パネルの最前面、後ろにするのは:
panel.SendToBack();
panel.BringToFront();
4.Windowsフォームサイズの固定
this.FormBorderStyle=FixedDialog;
MaximumSize、MinimumSizeプロパティの組み合わせて制御できる。

5.コントロールにツールチップを表示する(ToolTip)
参照URL

6.datagridviewのcurrentCellを常に[0,0]にする
gvData.CurrentCell = gvData[0, 0];

7.System.Nullable構造体は.NET 2.0から追加された構造体です

これは、intなどのnullを受け入れる事が出来ない型に対して

nullを許容させるために使用します。

int? id;

値がnullの場合にデフォルト値を割り当てること出来るようになっています。

int realId = id ?? -1;

8.Linq to SQL

・LINQ to SQL データモデルの作成(.dbml)

・データベースからエンティティクラスを作成

・遅延ローディング

・ストアドプロシジャーの使用

・データ更新

LdsBusinessDataContext db = new LdsBusinessDataContext();
int? nullmaxId = (from info in db.ChargeInfo
           select info.CompanyId).Max();
int maxId = nullmaxId ?? 0;
CompanyInfo companyInfo = new CompanyInfo();
companyInfo.CompanyId = maxId + 1;
companyInfo.CompanyName = txtCompanyName.Text;
companyInfo.ContractId = int.Parse(cmbCompanyStatus.SelectedValue.ToString());
db.CompanyInfo.InsertOnSubmit(companyInfo);
db.SubmitChanges();

参照URL

9.TextBoxに数字しか入力できないようにする

・さらにバックスペース文字も許可するには

・IMEのオン、クリップボードからの貼り付けを防ぐ

参照URL

10.データセットにパラメータの設定

参照URL

11.複数のパネル中のコンテナのタブ順を動的設定するには

・パネルでもタブ順を設定する必要ある

・コンテナのタブ順を設定する(TabIndex)

12.注意すべきコントロール
・MaskedTextBox
・DateTimePicker
・MonthCalendar
・NumermicUpDown
・WebBrowser
・RichTextBox
・SplitContainer
・TableLayoutPanel


0 件のコメント:

コメントを投稿