プログラミング-C#

C#(WPF)のDataGridComboBoxColumnでSelectionChangedイベントを受け取る

DataGridComboBoxColumnで選択したアイテムが変更された時にイベントが発生するように設定する。プロパティ内ではそんなイベントがない為、Styleで設定を行う。

C#でフォームを非アクティブで最前面に表示する

今までフォームを最前面に表示するときはフォームのTopMostプロパティをtrueにして対応してきたが、全画面表示されるもの(ゲームやメディアプレイヤー)を起動した時に最前面表示ではなくなっていた。どうにかどんな時も最前面表示できないかと調べてみたら、…

C# NumericUpDown ValueChanged でエラーが発生しない

NumericUpDownのValueChangedイベント内でエラーが発生しないことがある。 ValueChangedが発生する条件 違う値を入力した状態でエンターキー押下 違う値を入力した状態でフォーカスを他に移動 マウスホイールのスクロール 上下ボタンのクリック 他のイベント…

nunitで.NET4.0のデバッグが出来ない

以前書いたテストの自動化でテストのデバッグも出来ていたんですが.NET4.0のプロジェクトは何故かデバッグが出来ない。 どうやらnunit.exe.configをいじると直るらしい。 configの編集 <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v2.0.50727" /> <supportedRuntime version="v4.0.30319" /> </supportedruntime></supportedruntime></startup>

VisualStudio2010 Expressでnunitの自動化

VisualStudio 2010 ExpressではVS2012のやり方ではできません。 VS2010ではテストプロジェクトのcsprojファイルを直接編集することでテストの自動化が可能になります。 csprojの編集 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">のタグ内に以下のコードを追加する。 <StartAction>Program</StartAction> <StartProgram>nunit.exeのパス</StartProgram> <StartArguments>…</startarguments></propertygroup>

VisualStudio2012 の C# で nunit の自動化

C#でテストの自動化をしたい場合は以下の設定でできるようになります。 1.テストプロジェクトをスタートアッププロジェクトに設定 ソリューションエクスプローラのテストプロジェクトを右クリック > スタートアッププロジェクトに設定 2.デバッグの設定を変…

VS2012の.NET3.5でnunitが実行できない

昔からC#ではnunitでテストを行っています。 VisualStudio2010時代ではnunit.exeを使ってテストをしていましたが、 VisualStudio2012になってからはIDEに組み込めるようになったので、IDE上でテストを行っていました。今回.NETのバージョン3.5でプロジェクト…

OpenCV k-means法で画像減色

ある画像で使われている色の数を減らしたいので、どういうのがあるか探していたら見つかったk-means法。クラスタリングの手法の一種。OpenCVを使えば簡単にできるっぽい。 k-means法について 非階層型クラスタリング手法の1つ。クラスタの平均を用い、与えら…

C#でバイナリファイルをバイト配列に読み込む

using System.IO; public byte[] LoadBinary(string path) { byte[] loadData; using(FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read)){ loadData = new byte[fileStream.Length]; fileStream.Read(loadData , 0, loadData .…

C# 自分自身のバージョンを取得する

バージョンの取得 System.Diagnostics.FileVersionInfo ver = System.Diagnostics.FileVersionInfo.GetVersionInfo( System.Reflection.Assembly.GetExecutingAssembly().Location); string version = ver.FileVersion; 他にもAssemblyInfo.csに設定されてい…

C#でオブジェクトをバイナリファイルに保存、読み込む

忘れないようにメモメモ。 バイナリファイルから読み込む using System.IO; using System.Runtime.Serialization.Formatters.Binary; public object LoadBinary(string path) { // ファイルストリームの作成 FileStream fileStream = new FileStream(path, F…

C#でコマンドライン引数を取得する

やり方が2種類あります。 Enviromentを使用する方法 //コマンドライン引数の表示 MessageBox.Show(System.Environment.CommandLine); //コマンドラインを配列で取得する string[] cmds = System.Environment.GetCommandLineArgs(); //コマンドライン引数の表…

C#で外部アプリケーションを起動する

C#でのやり方がわからなかったので、とりあえずやってみた。 実行 using System.Diagnostics; private void Start(string exeName) { // アプリケーションの実行 Process.Start(exeName); // パラメータ、オプションを渡すには // Process.Start(exeName, "…

逆コンパイル

.Net用の逆コンパイルツールには「.NET Reflector」や「ILSpy」などがあり、これを使う事でexeファイルやdllファイルからソースコードを読み取れてしまう。 使ってみたところ、完全に復元できる訳ではないみたいだけど、だいたいは合っている。以下のソース(…