2010-03-01から1ヶ月間の記事一覧

『Visual C#実践講座』 3章 その1 データベース処理

ADO.NETの型なしデータセット データテーブルとデータロウを合わせたもの 型なしデータセットに機能追加したものが型付きデータセット ADO.NETのデータセットの特長 ・レコードに自由に配列のようにアクセスできる ・コントロールDataSourceプロパティにデー…

『Visual C#実践講座』 2章 その22 クリスタルレポートビューアをホイールスクロール可能にする

ホイールスクロールイベントハンドラ内で、内部に持ってるコントロールを順番に見ていき、 縦スクロールバーを持つか調べていく。縦スクロールバーを持つなら、そのコントロールに対して、 ホイールスクロール量だけWM_VSCROLL(0x200000)メッセージを通知す…

急にアクセス伸びてきた

よく分からないが、最近毎日350アクセスになってきた 日記始めた当初である40日前は250アクセス さらに40日後である5/1には500アクセス近くになると見ている 2/15-5/1 400アクセス 30000PV 5/1-6/1 600アクセス 48000PV 6/1-7/1 750アクセス 70000PV 7/1-8/1…

22:30からやるぞ!

今日は体調も意欲もまあまあ良い 昨日ほどではないけど

終わるぞ!

データセットという全く新しいことが出てきた 今日は330-372pをやった 時間にして2時間弱だった

終わるぞ!

Visual C#実践講座の291-340pの50ページをちょうど2時間で学んだ やはり疲れが少なければ進むのが速い

『Visual C#実践講座』 2章 その21 ファイル選択ダイアログで、拡張子が違っていたらメッセージを出すようにする

ファイル選択ダイアログで指定されている拡張子はあくまでデフォルトの拡張子であって、 ユーザが拡張子を指定するとその拡張子のファイルが選択できる。 だから、拡張子を限定したい場合には、FileOKイベント(ファイルが指定されてOKが押された時のイベント…

『Visual C#実践講座』 2章 その20 コントロールの再帰処理

沢山のコントロールに同一のプロパティ値を設定したい場合にはどうするか? 1つ1つ設定するのは面倒である。 コントロールのControlsプロパティを利用して子コントロールに対して再帰処理するとよい。 private void ChangeProp1(T value1, Control ctl) { …

『Visual C#実践講座』 2章 その19 コンボボックスを読み取り専用にする

入力確認画面などでコントロールをReadOnlyにしたいことがあるが、ReadOnlyプロパティというものはない そこで、自分で拡張コントロールを作る必要がある。 public class ExComboBox : Combobox { private bool m_readOnly; private Color m_defaultBkColor;…

『Visual C#実践講座』 2章 その18 イベント定義したらダミーハンドラを定義する

イベント定義時にダミーハンドラを定義する 何らかのハンドラを定義しないと例外発生してしまう public event EventHandler evSample; public CSample() { this.evSample += delegate { }; // ダミーハンドラ }

『Visual C#実践講座』 2章 その17 テキストボックスにフォーカスした時全選択されるようにする

Enterイベントハンドラにおいて (sender as Textbox).SelectAll(); とすればよい。 テキストボックスに何か入力してフォーカスを他に移してから再フォーカスした時に、 キャレットは元あった位置に設定される。これが余計なお世話である。 テキストボックス…

『Visual C#実践講座』 2章 その16 DateTimePickerは使わない

他のコントロールと違ってマウス入力が必要になるので、 リズム良く入力してきたのにDateTimePickerの所でマウスに切り替える必要が生じて煩わしく感じてしまう。 だから、DateTimePickerは使わないほうがよい。 あと、H220324のような7桁形式の年月日を扱え…

『Visual C#実践講座』 2章 その15 テキストボックス

テキストボックスはボタンに並んでフォームの花形だが、そのままでは使い勝手が悪い。 とくに、入力文字種を制限できないのが悪い。 例えば、数字と通貨文字とコンマとハイフンだけしか入力できないようにしたい場合。 ボタン押した時にチェックしてエラーメ…

『Visual C#実践講座』 2章 その14 デフォルトボタンとキャンセルボタン

フォームのAcceptButtonプロパティにデフォルトボタンを指定する。 これはフォームでEnterを押すとそのボタンが押されるというもの。 同様にCancelButtonプロパティにキャンセルボタンを指定する。 これはEsc押した時に押されるボタン。 キャンセルボタンと…

『Visual C#実践講座』 2章 その13 ボタンにショートカットキーを割り当てる

KeyDownイベントハンドラにおいて、Clickイベントハンドラを呼び出すことで、ボタンにキーを割り当てることができる private void form1_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.F3: // キーはSystem.Windows.Formsに定義…

うおおおおおおおおおおおおおおおおおおおおおおおおおおおお

今日は久々にパワーが余ってる 一ヶ月ぶりくらいか? せっかくだから、今日は50pやろうか 昨日100分で切り上げたから、今日140分やっても良いだろう(毎日平均2時間なので) 24日 291-340p 25日 341-380p 26日 381-407p, 『究極のC#プログラミング』1-10p 27日…

終わる!

100分で予定していた252p-290pをやった

『Visual C#実践講座』2章 その12 ボタン

ダブルクリック問題 ダブルクリックした時に二回Clickイベントが発生してしまうことによる問題 ボタンにタブストップするかどうか ボタンのフォーカス状態が分かりにくい

『Visual C#実践講座』2章 その11 IMEの制御

コントロールのImeModeプロパティを指定することでIMEを制御できる Control.ImeMode プロパティ (System.Windows.Forms) http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.imemode(VS.80).aspx ImeMode プロパティは、通常、数値入力…

『Visual C#実践講座』2章 その10 アクティブなフォームの取得

Form.ActiveFormプロパティを使えばよい Form.ActiveForm プロパティ (System.Windows.Forms) http://msdn.microsoft.com/ja-jp/library/system.windows.forms.form.activeform(VS.80).aspx Form メンバ (System.Windows.Forms) http://msdn.microsoft.com/j…

『Visual C#実践講座』2章 その9 エンターキーでフォーカスを移動する

フォームのKeyPreviewプロパティをtrueにしておき、 フォームのKeyDownイベントのハンドラ内で、 private void Form1_KeyDown(object sender, KeyEventArgs e) { if(e.KeyCode == Keys.Enter) { this.SelectNextControl(this.ActiveControl, !e.Shift, true,…

『Visual C#実践講座』2章 その8 フォームを常に最前面、最背面に

最前面に持ってくるには、フォームをTopMost=trueにすればよい 最背面に持ってくるには、フォームのSendToBackメソッドを使えばよい しかしウィンドウのアクティブ時にSendToBackを実行する方法だと、一瞬アクティブになってしまう 常に最背面であるためには…

『Visual C#実践講座』2章 その7 フォームの最大サイズの指定

フォームのMaximumSize, MinimumSizeを指定する(Width, Height)。

『Visual C#実践講座』2章 その6 フォームの閉じられた理由を知る

System.Windows.Forms.FormClosingEventArgs.CloseReasonを使う FormClosingEventArgs.CloseReason プロパティ (System.Windows.Forms) http://msdn.microsoft.com/ja-jp/library/system.windows.forms.formclosingeventargs.closereason(VS.80).aspx これは…

『Visual C#実践講座』2章 その5 動かないフォームを作る

DefWindowProcというWindows APIが、ウィンドウに関するメッセージを扱う protected override void WndProc(ref Message m) { const int WM_SYSCOMMAND = 0x0112; const int SC_MOVE = 0xF010; if(m.Msg == WM_SYSCOMMAND) { if(m.wParam.ToInt32() == (SC_M…

『Visual C#実践講座』2章 その4 タブインデックスの設定

タブキーでの遷移順をコントロールのTabIndexプロパティに設定する 表示メニューのタブオーダー(Alt + V, B)により、コントロールを順次クリックするだけでTabIndexを設定できるモードになる 0をスタートにして1ずつ増えていく あとあとの項目追加時に備えて…

今日もやるぞ!

252p〜290pを目標にする

終わり!

2時間で37pやった 今日は読み物が多かったので、日記は殆ど書くことが無かった Windowsフォームアプリの世界が面白くなってきた 実習が足りないが、全体像を把握してからのほうが効率良いのではと思う 今月中にこの本は終わって、『究極のC#プログラミング』…

『Visual C#実践講座』2章 その3 フォーム間のデータ受け渡し

・共通静的クラスのメンバで受け渡しする データ授受というより、システム内で共通の変数を使い回すという感じ 危険性がある(呼び出したフォームがちゃんと変数にセットしてくれたかの保証がない) グローバル変数みたいなもの ・コンストラクタの引数として…

『Visual C#実践講座』2章 その2 イベントハンドラのないメッセージをWndProcで処理する

OSからのメッセージを受けてアプリケーションが動く フレームワークによりWindowsメッセージが解析され、各コントロールにイベントが振り分けられる しかし、イベントハンドラの用意されてないメッセージに対しては、WndProcメソッドを使って処理を書く必要…