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

その他の問題点

ClickOnceのアプリとインストーラのアプリの両方がインストールされているといろいろ面倒なことが起こるかも知れない。 インストール場所のバッティングはほぼ起きないと思う。 アンインストールのキーの名前は確実に一致するだろうから、インストーラの設定…

インストーラ作成用“仕込み”作業

プロジェクトフォルダを見つける(⇒プルダウンへ割付) binフォルダを見つける(⇒パスへ割付) 最新版アプリケーションフォルダを探す(『【アプリケーション名】+〔発行バージョン番号〕』のフォルダ名から探す。Release/Debug指定があればその範囲で探す…

表題のmsdn解説記事にも書かれているが、何とか実現できないものか。 手動でやるのはあまり難しくなく、発行されたプロジェクト/ソリューションフォルダ中の bin\Release(場合によってはDebug)\app.publish\Application Files\【アプリケーション名】_【…

かなり実用でも使ってみて、 画面ハードコピーをCntl+Alt+PrtScrで取得して、ペイントへペースト、メモとして裏紙印刷 という工程が多用されるので、この一連を機能化してみることにする。『フォームの印刷』ということになるので、すぐ見つかるだろうとたか…

constを宣言すると、インスタンスの変数としては扱えなくて、クラスの定数として公開される。インテリセンスでインスタンスの変数を探しても出てこない。配列はconstを宣言して定数に出来ないようだ。(追記;初期化が出来ない旨のコンパイルエラーが出てビ…

ツールチップはツールボックスからフォームにドラッグして出来たコントロールのインスタンスが、各コントロールのプロパティーに「toolTip1(←インスタンス名)のToolTip」として項目が増えるから、そこへ表示したいテキストを書いておけばいい。…だけならば…

TryParseの使い方

C#

返り値がboolなので if(double.TryParse(str, out dbl)) { //dblに変換後の数値が入っている。 } else { //変換に失敗した。dblには値0が入っている。 } のように使う。

ZedGraphのグラフにAddCurveしてもの再描画が、一旦別ウィンドウの下に隠れないと行なわれない。 zedGraphControl1.AxisChange(); だけではダメで、画面リフレッシュをしないといけない。探したらそのものズバリのメソッドがあった。 // Refresh to paint th…

AddCurveで折れ線グラフを書いているとどんどんカープの個数が増えてくるが、それを防ぐ方法は…

描画された曲線を一旦全部消してしまう。 zedGraphControl1.GraphPane.CurveList.Clear();

逆の、『文字列への変換』は「ToString()」という強力なメソッドがあるので、たかをくくっていたが、『実数(double)への変換』でこんなに苦労するとは思わなかった。 double.Parse(str) はとても脆弱で落ちまくる。 ここにあるようにtryを使うか double.Tr…

C#でZedGraphを使う

VBではサンプルコードあるけど、C#ではコピペするだけでいいのが見当たらない。っていうか、公式ページに英文でさんざん懇切丁寧に書かれているような気がするんだけど、多分自分に読み解こうという気力が沸かん。で、インテリセンス頼みなんだけど、コント…

ClickOnceアプリケーションかどうかを自分自身で知る[ClickOnce][Visual Studio Express 2010]

自分自身がClickOnceアプリケーションかどうかを見分けるには、 System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed を使う。自分自身のパス名は、 Application.ExecutablePath で分かる。それから、発行タブの『バージョンの発行』で…

プロジェクトの持ち運びは、マイドキュメントにあるProjectsフォルダー内のプロジェクトフォルダを丸ごと持ち運びで大丈夫。どこからの発行もOK。 但し、プロジェクトを開いた時の編集状態は全てリセットされてしまうので、ソリューションエクスプローラから…

既に遭遇しているが、デリゲートについてはいずれまとめないといけない。

その使い方もさることながら、仕組みと概念を明確に理解しておきたい。 具体的には、別クラス(別名前空間)に分けたcsvTrimを呼び出す時、 そのクラスが持つstaticでprivateな変数の値をSetは出来るがGetは出来ない。 [追記]これは入力ミスだった。メソッ…