2009年1月 9日 (金)

オリジナルライブラリを、IntelliSenseに対応させる

自分で作成した、クラスライブラリを使うとき、呼び出し側でIntelliSenseや、引数のコメントがでると便利である。

VS2005には、この機能が備わっており、プロジェクトのプロパティ-ビルドの出力項目で、XMLドキュメントファイルにチェックを入れる。

http://dobon.net/vb/dotnet/programing/xmldocument.html

だだし、コメントがない関数等でワーニングがでるようになるので、デバッグが済んだ時点で、出力されるようにしないと、うっとうしい。

2008年1月24日 (木)

mdfのテーブル名の変更

VS2005では、列の列名の変更は可能だが、テーブル名の変更の仕方が良くわからなかった。

Microsoft SQL Server Menagement Studio Expressを使えば簡単にできる。

  1. Menagement Studioを起動する。
  2. xxx\SQLEXPRESSに接続する
  3. エクスプローラでデータベースをクリック
  4. 右ボタンでアタッチを選択
  5. 目的のmdfファイルを指定
    データベースに追加される
  6. 変更したいテーブルを選択し、F2でリネームする

2008年1月17日 (木)

コントロールパネルの開き方

ヘルプファイルのショートカットでプログラムが起動できる。

例えば、「地域のプロパティ」を開くには
intl.cpl
と指定する

2つ目のタブで、開くには
control intl.cpl,,1
と指定する(タブの最初は0)

2008年1月15日 (火)

状況依存ヘルプ

VS2005 + HTML Help Write's Desk による状況依存ヘルプのつくりかた。

○HTML Help Write's Deskの準備

  1. 普通にヘルプを作成する。
  2. コンテキストIDダブで、ページ(ファイル)ごとに、IDを設定する。
  3. コンテキストIDの値は適当でよい(例えばフォーム名など)
    値は10進数にする。ページは、たとえば1000番刻みで振る。コントロールは、たとえば10番刻みで振る。ただし、TABキーでフォーカスがあたらないコントロールは意味がない(状況依存にできない?)ので、コンテキストIDは作る必要はない
  4. 完成したらコンパイルをしておく。

○VS2005側の準備

  1. フォームにHelpProviderコンポーネントを追加する
    (各コントロールのプロパティにhelpProvider1の...が追加される。)
  2. helpProvider1.HelpNamespaceに、chmファイルのパスを入れる
  3. 各コントロールのプロパティのhelpProvider1のHelpNavigaorに、TopicIDを設定する。
  4. 各コントロールのプロパティのhelpProvider1のHelpKeywordに、コンテキストIDの値(10進数)を設定する。

実行して、各フォームやコントロールで、[F1]キーを押して、指定のヘルプが表示されれば成功。

2007年7月20日 (金)

Crystal Reports for Vista

CrystalReportsを使ったアプリをVistaにインストールすると、ExportModellerの登録に失敗する。

CrystalReportsRedist2005_x86.msmをマージしなければ、インストールに成功するが、実行時のレポート表示でエラーとなり使えない。

とりあえずの回避方法としては、ターゲットマシン(Vista)に、まずCRRedist2005_x86.msiをインストールしておく。その後、目的のアプリケーションをインストールすれば、エラーにならず成功する。(CrystalReportsRedist2005_x86.msmはマージしておいてもかまわない)

2007年7月11日 (水)

ClickOnceのデジタル証明書を更新

ClickOnceで発行しようとすると「署名に失敗しました」というメッセージが出でビルドできなくなる。これは、有効期限が1年に限定されているためだ。対処法としては自動生成したデジタル証明書を更新する。手順は下記。RenewCert.exeというプログラムを作成する必要がある。

http://www.atmarkit.co.jp/fdotnet/dotnettips/611clickoncerenewcert/clickoncerenewcert.html

手順のしたがって作成したが、Releseではビルドエラーとなる。しかたなくDebugモードのRenewCert.exeを使ったが問題なかった。

実行方法は下記

D:\Visual Studio 2005\Projects\RenewCert\debug>renewcert {pfxファイル} {新しいpfxファイル} "CN=xxx\xxx"

xxx\xxxは適当な名前で署名に表示される。

プロジェクトのプロパティから、署名で新しいpfxファイルを読み込む
詳しくは下記を参照
http://www.atmarkit.co.jp/fdotnet/clickonce/clickonce07/clickonce07_03.html

これで、とりあえずビルドできるようになる。

2006年7月19日 (水)

ToolStripButtonで保存

ToolStripButtonでデータベースに保存する場合、this.Validate()で変更を確定する。ToolStripButtonは、フォーカスを持たないので、最後に変更したコントロール(ex.TextBox)の内容(TextBox.Text)が確定(フォーカス移動)されない。

Webサービスにステップインしない

DataSetを渡す呼び出し関数で、ステップインしない場合、直前に何もパラメータを渡さない関数をダミーで書き、ステップインさせると、なぜかDataSetを渡す呼び出し関数もステップインする。

コンポーネントの階層を編集

ドキュメントアウトラインを使う

DataGridViewで行サイズを固定

AllowUserToResizeRows = False;

2006年7月18日 (火)

Webサービスにステップインしない

InitializeComponentでこけている場合、ステップインしない。VS2005でWebサービスを作成する際、デザイナを使いoleDbDataAdapterを配置すると、実行できない場合がある。これは、自動生成されたソースで、CommandTextの内容が長いと、resources.GetString(...)が生成される。どういうわけか、実行するとリソースが見つからないというエラーなる。

たぶん同じ記事(http://forums.asp.net/thread/1275648.aspx

2日間やってみたけど回避できなかった。結局、TableAdapterに書き換えて一件落着。