2009年10月28日

Visual Studio 2008の「最近使ったプロジェクト」で表示される数を増やす

   このエントリーをはてなブックマークに追加 Clip to Evernote

Visual Studio 2008 の 「最近使ったファイル」「最近使ったプロジェクト」で表示される項目数は、デフォルトでは6になっていますが、僕にとってこれは少なすぎます。
この値は、レジストリの値を変更することで、増やすことができます。

HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio9.0General
のMRUListItemCount の値を変更すればOKです。
僕は、10を指定しています。

追記
わざわざ、こんな面倒なことをする必要はありませんでした。

1.[ツール]メニュー→[オプション]
2.オプションダイアログ→[環境]→[全般]→[最近使ったファイル]
で変更できました。
  

Posted by gushwell at 21:15Comments(2)TrackBack(0)

2009年10月25日

LINQのToDictionaryメソッドの動き

   このエントリーをはてなブックマークに追加 Clip to Evernote


というオブジェクトに対して


とやったら、どうなるんだろうか。
試してみたところでは、Value の値でソートされ、その順番を保持して、 Dictionary オブジェクトに変換されているようだけれど、
これは、保障された動きなのだろうか?

  
Posted by gushwell at 22:38Comments(2)TrackBack(0)

2009年10月18日

LINQのToLookupメソッド

   このエントリーをはてなブックマークに追加 Clip to Evernote

LINQの拡張メソッドに、Enumerable.ToLookupメソッドがあります。
このToLookUpメソッドは、Lookup 型を返すメソッドです。
Lookup型は、Dictionary に似ていますが、Dictionaryがキーを単一の値に割り当てるのに対して、Lookup はキーに対応する値がコレクションに割り当てられます。

以下のコードを見てください。

このコードは、ToLookUpメソッドで、ProductをCategoryIDごとにグルーピングしています。
foreachで取り出せるのは、IGrouping インターフェースのオブジェクトであり、 TKeyに対し、TElementのコレクションを保持しています。
この例では、[CategoryID, 該当する複数のProduct]を要素として持つコレクションとなります。
要素を取得するのに、2つのforeachを使い、CategoryIDに該当するProductName(複数)を表示しています。

図示できれば、もっと理解しやすいのだと思いますが、図を描くのは面倒なのでパスします。

この例では、あえて、型を明示したコードにしましたが、実際には、 varを使い、


と書いても良いと思います。   
Posted by gushwell at 22:33Comments(0)TrackBack(0)

2009年10月14日

タスクトレイにアイコンを表示する際、ウィンドウを表示させないようにするには

   このエントリーをはてなブックマークに追加 Clip to Evernote

Webで検索するといくつかの方法があることが分かりますが、僕が一番良いと思う方法は、
コンポーネントを使う方法です。
以下、その手順を簡単に説明します。

1. 新規プロジェクトでWindowsFormsアプリケーションを選択。
  自動作成されるFormは、タスクトレイをダブルクリックなどした際に
  表示されるフォームとして利用することとします。

2. [プロジェクト]メニューから、[コンポーネントの追加]を選択。
  適当な名前を付け、コンポーネントを作成します。

3. 作成したコンポーネントに、NotifyIconとCotextMenuコントロールを
  貼り付けます。

4. NotifyIconとContextMenuの各プロパティを設定します。CotextMenuのメニュー項目の
  設定がちょっと面倒ですが、そのような場合は、FormでContextMenuを貼り付け、
  編集した後に、カット&ペーストでコンポーネントに貼り付けます。

5. Programs.csのMainメソッドを以下のように書き換えます。
  ※もし、設定ファイルを読み込む必要があるのならば、コンポーネントをnewする
   前に読み込み、その値をコンポーネントのコンストラクタに渡します。

6. NotifyIconとContextMenuのイベントハンドラを記述します。

アプリケーションを終了するには、コンポーネントのソース内(たとえば、
ContextMenuのClickイベント内)で、

といったコードを書いてください。
フォームを表示させるには、たとえば、NotifyIconのダブルクリックイベントで、
のようなコードを書きます。

このやり方の利点は、NotifyIconにかかわるコードと、フォームにかかわるコードを別々のソースに分けて書くことができるという点です。
フォームにNotifyIconコントロールを貼り付けてしまうと、様々なイベントハンドラがひとつのFormクラス内に書かれることになり、見通しの悪いコードになってしまいます。
また、上記方法だと、フォームを非表示にするための特別なコードも書く必要がなくなります。

  
Posted by gushwell at 22:18Comments(0)TrackBack(0)

2009年10月12日

またXPが立ち上がらない (Ask Toolbarの問題か)

   このエントリーをはてなブックマークに追加 Clip to Evernote
家内から、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が起動しました。
  
Posted by gushwell at 21:26Comments(0)TrackBack(0)

2009年10月11日

XPマシンが起動しなくなった時の対処(回復コンソールとbootcfgコマンド)

   このエントリーをはてなブックマークに追加 Clip to Evernote
自宅の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
  
Posted by gushwell at 20:10Comments(0)TrackBack(0)

2009年10月10日

「C#プログラミングレッスン」 入門編 2nd

   このエントリーをはてなブックマークに追加 Clip to Evernote
Gushwell's C# Programing Page --「窓際プログラマーの独り言」別館で、
メールマガジン『C#プログラミングレッスン』のバックナンバー「C#入門編 2nd」をダウンロードできるようにしました。

現在は、FxCopに学ぶ編を連載中です。
  
Posted by gushwell at 14:17Comments(0)TrackBack(0)

2009年10月04日

WindowsFormsのListViewのバインディングサンプル

   このエントリーをはてなブックマークに追加 Clip to Evernote
最近、ここに書く話題がなかなか見つからないので、
昔のメモから、WindowsFormsのListViewのバインディングについて。

Northwnd.mdfのOrdersTableを使ったサンプルです。
ADO.NET2.0の型付DataSetを利用しています。

  
Posted by gushwell at 23:50Comments(0)TrackBack(0)