2009年10月28日
Visual Studio 2008の「最近使ったプロジェクト」で表示される数を増やす
Visual Studio 2008 の 「最近使ったファイル」「最近使ったプロジェクト」で表示される項目数は、デフォルトでは6になっていますが、僕にとってこれは少なすぎます。
この値は、レジストリの値を変更することで、増やすことができます。
HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio9.0General
のMRUListItemCount の値を変更すればOKです。
僕は、10を指定しています。
追記
わざわざ、こんな面倒なことをする必要はありませんでした。
1.[ツール]メニュー→[オプション]
2.オプションダイアログ→[環境]→[全般]→[最近使ったファイル]
で変更できました。
2009年10月25日
LINQのToDictionaryメソッドの動き
というオブジェクトに対して
とやったら、どうなるんだろうか。
試してみたところでは、Value の値でソートされ、その順番を保持して、 Dictionary オブジェクトに変換されているようだけれど、
これは、保障された動きなのだろうか?
2009年10月18日
LINQのToLookupメソッド
LINQの拡張メソッドに、Enumerable.ToLookupメソッドがあります。
このToLookUpメソッドは、Lookup
Lookup型は、Dictionary
以下のコードを見てください。
このコードは、ToLookUpメソッドで、ProductをCategoryIDごとにグルーピングしています。
foreachで取り出せるのは、IGrouping
この例では、[CategoryID, 該当する複数のProduct]を要素として持つコレクションとなります。
要素を取得するのに、2つのforeachを使い、CategoryIDに該当するProductName(複数)を表示しています。
図示できれば、もっと理解しやすいのだと思いますが、図を描くのは面倒なのでパスします。
この例では、あえて、型を明示したコードにしましたが、実際には、 varを使い、
と書いても良いと思います。
2009年10月14日
タスクトレイにアイコンを表示する際、ウィンドウを表示させないようにするには
Webで検索するといくつかの方法があることが分かりますが、僕が一番良いと思う方法は、
コンポーネントを使う方法です。
以下、その手順を簡単に説明します。
1. 新規プロジェクトでWindowsFormsアプリケーションを選択。
自動作成されるFormは、タスクトレイをダブルクリックなどした際に
表示されるフォームとして利用することとします。
2. [プロジェクト]メニューから、[コンポーネントの追加]を選択。
適当な名前を付け、コンポーネントを作成します。
3. 作成したコンポーネントに、NotifyIconとCotextMenuコントロールを
貼り付けます。
4. NotifyIconとContextMenuの各プロパティを設定します。CotextMenuのメニュー項目の
設定がちょっと面倒ですが、そのような場合は、FormでContextMenuを貼り付け、
編集した後に、カット&ペーストでコンポーネントに貼り付けます。
5. Programs.csのMainメソッドを以下のように書き換えます。
前に読み込み、その値をコンポーネントのコンストラクタに渡します。
6. NotifyIconとContextMenuのイベントハンドラを記述します。
アプリケーションを終了するには、コンポーネントのソース内(たとえば、
ContextMenuのClickイベント内)で、
といったコードを書いてください。
フォームを表示させるには、たとえば、NotifyIconのダブルクリックイベントで、
のようなコードを書きます。
このやり方の利点は、NotifyIconにかかわるコードと、フォームにかかわるコードを別々のソースに分けて書くことができるという点です。
フォームにNotifyIconコントロールを貼り付けてしまうと、様々なイベントハンドラがひとつのFormクラス内に書かれることになり、見通しの悪いコードになってしまいます。
また、上記方法だと、フォームを非表示にするための特別なコードも書く必要がなくなります。
2009年10月12日
またXPが立ち上がらない (Ask Toolbarの問題か)
家内から、PCが直ってないよ、という声が。。。。
画面をみたら、昨日と同じメッセージが出て、PCが起動できません。
確かに、昨夜は直ったと思ったのですが、
また boot.iniが消えてしまったようです。
根本的な解決にはなっていなかったということですね。
家内が、IE8をインストールしたらおかしくなった気がするとのこと。
調べたら、こんなページがみつかりました
「Ask Toolbar で boot.ini が繰り返し削除される・・・」
http://pcrescue.blog69.fc2.com/blog-entry-329.html
ASk toolbarのバグ?でboot.iniが消されてしまうという 恐ろしいことが書いてありました。
たしかに、 Ask Toolbarなるものをインストールした記憶があるとのこと。
なので、昨日と同じことをやり、PCを復活させた後に、 Ask ToolBarをアンインストールしました。
その後、IE8を起動すると、
IE8がインストールされていないので、IE8をインストールします
みたいな理解不能なメッセージが表示されました。
そのほか、検索エンジンがどうのこうの...というメッセージも表示されています。完全にIEがおかしくなっているようです。
しかたないので、IE8もアンインストールすることに。
今まで使っていたIE6だと、Youtubeが見られなくなるということで、
その代わりに、FireFoxをインストールしました。
これで、PCを再起動。無事PCが起動しました。
画面をみたら、昨日と同じメッセージが出て、PCが起動できません。
確かに、昨夜は直ったと思ったのですが、
また boot.iniが消えてしまったようです。
根本的な解決にはなっていなかったということですね。
家内が、IE8をインストールしたらおかしくなった気がするとのこと。
調べたら、こんなページがみつかりました
「Ask Toolbar で boot.ini が繰り返し削除される・・・」
http://pcrescue.blog69.fc2.com/blog-entry-329.html
ASk toolbarのバグ?でboot.iniが消されてしまうという 恐ろしいことが書いてありました。
たしかに、 Ask Toolbarなるものをインストールした記憶があるとのこと。
なので、昨日と同じことをやり、PCを復活させた後に、 Ask ToolBarをアンインストールしました。
その後、IE8を起動すると、
IE8がインストールされていないので、IE8をインストールします
みたいな理解不能なメッセージが表示されました。
そのほか、検索エンジンがどうのこうの...というメッセージも表示されています。完全にIEがおかしくなっているようです。
しかたないので、IE8もアンインストールすることに。
今まで使っていたIE6だと、Youtubeが見られなくなるということで、
その代わりに、FireFoxをインストールしました。
これで、PCを再起動。無事PCが起動しました。
2009年10月11日
XPマシンが起動しなくなった時の対処(回復コンソールとbootcfgコマンド)
自宅のXPマシンが
Windows could not start because the following file is missing or corrupt:
system32 hal.dll
Please re-install a copy of the above file
のようなメッセージがでて起動できなくなりました。
hal.dll をなんとか正しいファイルと置き換えれば修復できると思い、 以下の作業を実施。
1. リカバリーCDだと、データが消えてしまうので、なんとか
ならないかと、まずは、
ここを参考に、ブート可能なCD−Rを作成。
http://lets-go.hp.infoseek.co.jp/kaihuku.html
2. これで、PCを起動し、回復コンソールの画面にする。
GUIは使えないコマンドプロンプトの状態
3. hall.dllを別のPCからコピー。
このときFDが使えればよかったのですが、FDが使えないので、
PCカードスロットのSDカードアダプタを使い、
hall.dllをコピー。
4. PCを再起動。
しかし、現象は変わらず。PCが起動しません。(T T)
さらにネットで調べると、
「起動しなくなったXPを救う「Rebuild」コマンド」
http://gigazine.net/index.php?/news/comments/20060419_xprebuild/
というページを見つける。
ということで、先ほど作成した、起動用CDを使い、回復コンソールを起動。
ここで、「Bootcfg /Rebuild」コマンドを実行。
PCを再起動したら、無事 Windows XPが起動しました。
※ 参照したページでは boot.iniを削除するとあったけど、なぜか、boot.iniが
見つかりませんでした。
起動しなかったのは、このせいだと思います。
また、「Fixboot」コマンドを実行とありましたが、これも実行していません。
2台のPCが自宅にあったから復旧できましたが、1台しかないとリカバリーするしか方法がなかったと思います。 万が一に備え、PCが正常なうちに、ブート可能CDを作成しておくことをお薦めします。
追記
bootcfgコマンドについては、ここを参照しました。
http://support.microsoft.com/kb/291980/ja
Windows could not start because the following file is missing or corrupt:
Please re-install a copy of the above file
のようなメッセージがでて起動できなくなりました。
hal.dll をなんとか正しいファイルと置き換えれば修復できると思い、 以下の作業を実施。
1. リカバリーCDだと、データが消えてしまうので、なんとか
ならないかと、まずは、
ここを参考に、ブート可能なCD−Rを作成。
http://lets-go.hp.infoseek.co.jp/kaihuku.html
2. これで、PCを起動し、回復コンソールの画面にする。
GUIは使えないコマンドプロンプトの状態
3. hall.dllを別のPCからコピー。
このときFDが使えればよかったのですが、FDが使えないので、
PCカードスロットのSDカードアダプタを使い、
hall.dllをコピー。
4. PCを再起動。
しかし、現象は変わらず。PCが起動しません。(T T)
さらにネットで調べると、
「起動しなくなったXPを救う「Rebuild」コマンド」
http://gigazine.net/index.php?/news/comments/20060419_xprebuild/
というページを見つける。
ということで、先ほど作成した、起動用CDを使い、回復コンソールを起動。
ここで、「Bootcfg /Rebuild」コマンドを実行。
PCを再起動したら、無事 Windows XPが起動しました。
※ 参照したページでは boot.iniを削除するとあったけど、なぜか、boot.iniが
見つかりませんでした。
起動しなかったのは、このせいだと思います。
また、「Fixboot」コマンドを実行とありましたが、これも実行していません。
2台のPCが自宅にあったから復旧できましたが、1台しかないとリカバリーするしか方法がなかったと思います。 万が一に備え、PCが正常なうちに、ブート可能CDを作成しておくことをお薦めします。
追記
bootcfgコマンドについては、ここを参照しました。
http://support.microsoft.com/kb/291980/ja
2009年10月10日
「C#プログラミングレッスン」 入門編 2nd
Gushwell's C# Programing Page --「窓際プログラマーの独り言」別館で、
メールマガジン『C#プログラミングレッスン』のバックナンバー「C#入門編 2nd」をダウンロードできるようにしました。
現在は、FxCopに学ぶ編を連載中です。
メールマガジン『C#プログラミングレッスン』のバックナンバー「C#入門編 2nd」をダウンロードできるようにしました。
現在は、FxCopに学ぶ編を連載中です。
2009年10月04日
WindowsFormsのListViewのバインディングサンプル
最近、ここに書く話題がなかなか見つからないので、
昔のメモから、WindowsFormsのListViewのバインディングについて。
Northwnd.mdfのOrdersTableを使ったサンプルです。
ADO.NET2.0の型付DataSetを利用しています。
昔のメモから、WindowsFormsのListViewのバインディングについて。
Northwnd.mdfのOrdersTableを使ったサンプルです。
ADO.NET2.0の型付DataSetを利用しています。