C#
以前 グローバルキーフックでキーの捕捉と入力を行う なんて記事を書きましたが、.Net 6への移行を進めていると64bitで動作しないことが判明しました。 結論から言うとデータ構造アライメントのせいなのですが、その際の対応と何故起きたのかを考察してみよ…
以前、ヘッダーでソート可能なListViewを実装してみるといったソート可能なListViewを紹介しましたが、より高度なソートとしてコンパレータを使ってソートする方法も紹介します。 ただし、前回のように汎用的な実装ではないので仕様に際しては工夫が必要です…
こんにちは。 前回に続き、またRichTextBoxネタです。 今回はRichTextBoxの内部で動くScrollViewerのイベントを捉えてスクロールを捕捉してついでに末尾を検知してみようと思います。 やることは単純で、TemplateからPART_ContentHostの名前がついたScrollVi…
お久しぶりです。めっきり更新が止まってしまいましたが、辛うじて生きています。 さて、今回はWPFネタで、RichTextBoxコントロールのWordWrapping (TextWrapping) を無効化してテキストに応じて横に伸びてもらいます。 RichTextBoxコントロールは標準でWord…
内製アプリで100ファイルくらいダウンロードするのに3つ並列でダウンロードとかしたかったもののあんまりいい方法が無かったので備忘録がてら残しておきます。 基本的にはTaskを使って実装することになりますが、そのまま並列化してしまうとすごい数の並列ダ…
お久しぶりです。 最近多忙とブログネタが無かったことが重なって更新がかなり空いてしまいましたが、中の人は普通に生きてます。 今回は久しぶりにC# WPFネタで、GridViewColumnを装備したListViewで各GridViewColumnをクリックするとそのカラムに応じてソ…
こんにちは。 長らく私のC#プロジェクトでは .Net Frameworkを用いており、外部依存ライブラリも直にdllを参照しておりました。 しかしながら、.Net Standardより複数のフレームワークでビルドが可能となり、そうすると依存ライブラリの管理が厄介になってき…
TreeViewを扱っているとアイテムをドラッグアンドドロップで移動させくなることがあります。 Formsでは結構やり方が乗ってるんですが、WPFとなると一切出てこないので実装してみることに。 本当はコードビハインドに書きたくはなかったのですが、こうする以…
久しぶりにWPFのテクニックを紹介します。 ListBoxでファイルパスを管理する機会があって、TextBoxとButtonでファイルパスを入力して管理するというのをやりました。 ListBoxってただ文字列を配置するだけでなく、意外にも好き放題カスタマイズできるので参…
浮動小数点数が値によっては誤差が発生することは広く有名な話だと思います。 例えば、「0.1 + 0.2 == 0.3」は多くの言語処理系において等値ではありません。 というのは私も知っていましたが、ではどうして等値ではないのかと聞かれるとフワーッとしたこと…
こんにちは。 タイトル考えたけどいいのが思いつかなかった。 ただの雑記だしいいか。 本題ですが、TreeViewってあんまり使う機会思いつかないけど地味に結構使うコントロールだと思います。 私も最近XMLエディタを作ることがあって使ったんですが、普通にIt…
こんにちは。 最近バイクネタかWindowsネタばかりでしたが、今回はC#ネタを少し。 C#ではProcessクラスよりプロセス名の取得が簡単にできます。 しかしながら、プロセス取得は重い処理なため、取得頻度が多いとボトルネックになることがあります。 そこで今…
テストをちゃんとできるようにと思ってMoqを使って最近勉強しだしたものの、voidメソッドってどうやってテストすんだ・・・? となり、2時間ほど悩んだところなんとかできたのでその時の備忘録です。 テストはあまり勉強してこなかったのでもうちょっといい…
お久しぶりです。 多忙によりブログネタが全くできず、今まで放置状態でした。 さて、今日はVisual Studio 2015から導入されたRoslynコンパイラのAPIの一部で、C#ソースを解析するCodeAnalysisを使って解析を行ってみます。 大学の卒研で触ることがあったの…
Windows環境下のプログラムではしばしばレジストリを扱うことがあり、Win32APIでアクセスする手法が提供されています。 C#では汎用化されたクラスで提供されていて、レジストリへのアクセスは比較的容易です。 しかしながら、レジストリにはユーザが個別で外…
こんにちは、久しぶりにプログラミング関連のネタです。 以前MabinogiKeyConverterというアプリケーションを公開して記事にも適当に書いたのですが、そこで使用しているグローバルキーフックについて残しておきます。 C#では実行アプリケーション上でキーイ…
こんにちは。 最近Xamarin Formsを触る機会があり、そこで謎のエラーで詰んだので備忘録的に残しておきます。 おそらく今回触れるライブラリ以外でもすべての外部ライブラリで出ると思います。
こんにちは。 ブログではほとんどSavannah Managerについて触れてきませんでしたが、ちょっとずつ触れていきます。 今回から数回にかけてSavannah Managerの技術的情報を公開していきます。 一応公開する情報はSavannah Manager Libでも実装しているのでそち…
TwitterをしているとTLでふと見かけたので備忘録。 Windownsフォームアプリケーションを作る際、背景を透過したくなることが稀にあります。 単純にTransparentを指定してもサポートされてない旨のメッセージとともに失敗します。
64bit OSにおいて、32bitビルドしたアプリケーションはWOW64を通して実行されます。 普通にプログラムを組んでる分にはさほど意識する必要はありませんが、レジストリを扱う場合少々面倒なことになります。 32bitアプリケーションを32bit OSで実行し、レジス…