2010-03-01から1ヶ月間の記事一覧
ADO.NETの型なしデータセット データテーブルとデータロウを合わせたもの 型なしデータセットに機能追加したものが型付きデータセット ADO.NETのデータセットの特長 ・レコードに自由に配列のようにアクセスできる ・コントロールDataSourceプロパティにデー…
ホイールスクロールイベントハンドラ内で、内部に持ってるコントロールを順番に見ていき、 縦スクロールバーを持つか調べていく。縦スクロールバーを持つなら、そのコントロールに対して、 ホイールスクロール量だけ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…
今日は体調も意欲もまあまあ良い 昨日ほどではないけど
データセットという全く新しいことが出てきた 今日は330-372pをやった 時間にして2時間弱だった
Visual C#実践講座の291-340pの50ページをちょうど2時間で学んだ やはり疲れが少なければ進むのが速い
ファイル選択ダイアログで指定されている拡張子はあくまでデフォルトの拡張子であって、 ユーザが拡張子を指定するとその拡張子のファイルが選択できる。 だから、拡張子を限定したい場合には、FileOKイベント(ファイルが指定されてOKが押された時のイベント…
沢山のコントロールに同一のプロパティ値を設定したい場合にはどうするか? 1つ1つ設定するのは面倒である。 コントロールのControlsプロパティを利用して子コントロールに対して再帰処理するとよい。 private void ChangeProp1(T value1, Control ctl) { …
入力確認画面などでコントロールをReadOnlyにしたいことがあるが、ReadOnlyプロパティというものはない そこで、自分で拡張コントロールを作る必要がある。 public class ExComboBox : Combobox { private bool m_readOnly; private Color m_defaultBkColor;…
イベント定義時にダミーハンドラを定義する 何らかのハンドラを定義しないと例外発生してしまう public event EventHandler evSample; public CSample() { this.evSample += delegate { }; // ダミーハンドラ }
Enterイベントハンドラにおいて (sender as Textbox).SelectAll(); とすればよい。 テキストボックスに何か入力してフォーカスを他に移してから再フォーカスした時に、 キャレットは元あった位置に設定される。これが余計なお世話である。 テキストボックス…
他のコントロールと違ってマウス入力が必要になるので、 リズム良く入力してきたのにDateTimePickerの所でマウスに切り替える必要が生じて煩わしく感じてしまう。 だから、DateTimePickerは使わないほうがよい。 あと、H220324のような7桁形式の年月日を扱え…
テキストボックスはボタンに並んでフォームの花形だが、そのままでは使い勝手が悪い。 とくに、入力文字種を制限できないのが悪い。 例えば、数字と通貨文字とコンマとハイフンだけしか入力できないようにしたい場合。 ボタン押した時にチェックしてエラーメ…
フォームのAcceptButtonプロパティにデフォルトボタンを指定する。 これはフォームでEnterを押すとそのボタンが押されるというもの。 同様にCancelButtonプロパティにキャンセルボタンを指定する。 これはEsc押した時に押されるボタン。 キャンセルボタンと…
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をやった
ダブルクリック問題 ダブルクリックした時に二回Clickイベントが発生してしまうことによる問題 ボタンにタブストップするかどうか ボタンのフォーカス状態が分かりにくい
コントロールのImeModeプロパティを指定することでIMEを制御できる Control.ImeMode プロパティ (System.Windows.Forms) http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.imemode(VS.80).aspx ImeMode プロパティは、通常、数値入力…
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…
フォームのKeyPreviewプロパティをtrueにしておき、 フォームのKeyDownイベントのハンドラ内で、 private void Form1_KeyDown(object sender, KeyEventArgs e) { if(e.KeyCode == Keys.Enter) { this.SelectNextControl(this.ActiveControl, !e.Shift, true,…
最前面に持ってくるには、フォームをTopMost=trueにすればよい 最背面に持ってくるには、フォームのSendToBackメソッドを使えばよい しかしウィンドウのアクティブ時にSendToBackを実行する方法だと、一瞬アクティブになってしまう 常に最背面であるためには…
フォームのMaximumSize, MinimumSizeを指定する(Width, Height)。
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 これは…
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…
タブキーでの遷移順をコントロールのTabIndexプロパティに設定する 表示メニューのタブオーダー(Alt + V, B)により、コントロールを順次クリックするだけでTabIndexを設定できるモードになる 0をスタートにして1ずつ増えていく あとあとの項目追加時に備えて…
252p〜290pを目標にする
2時間で37pやった 今日は読み物が多かったので、日記は殆ど書くことが無かった Windowsフォームアプリの世界が面白くなってきた 実習が足りないが、全体像を把握してからのほうが効率良いのではと思う 今月中にこの本は終わって、『究極のC#プログラミング』…
・共通静的クラスのメンバで受け渡しする データ授受というより、システム内で共通の変数を使い回すという感じ 危険性がある(呼び出したフォームがちゃんと変数にセットしてくれたかの保証がない) グローバル変数みたいなもの ・コンストラクタの引数として…
OSからのメッセージを受けてアプリケーションが動く フレームワークによりWindowsメッセージが解析され、各コントロールにイベントが振り分けられる しかし、イベントハンドラの用意されてないメッセージに対しては、WndProcメソッドを使って処理を書く必要…