特定のタイミングでフォーカスを外す C# コードを説明します。
現在のフォーカスを外した際に、LostFocus
イベントも発生させます。フォーカスを外した後のキーボードフォーカスも正しく設定します。
新着記事
Git のローカルのタグがリモートとずれた場合に、リモートのタグを再取得して強制的に上書きする方法です。
ローカルとリモートで同一名のタグを作成したり、タグが再プッシュされた場合にずれたりします。
Hugo は、##
などの見出しにアンカーリンクを自動設定してくれます。目次の出力 (Table of contentsTable) でアンカーリンクに飛べます。
しかし、見出しのテキストにマウスカーソルを乗せても、アンカーリンクは表示されません。
GitHub のようにアンカーリンクのアイコンボタンを表示する方法です。
通常は Style の Setter を使用することで、共通のバインドを定義することができますが、別々の Style を適用したい場合などは別の方法が必要です。
ResourceDictionary に x:Key を指定して Binding を定義しても、StaticResource から参照することができません。
Markup を実装することで、共通の Binding を1回だけ定義して、共有して使用する方法です。
GitHub Copilot を Visual Studio で使用する際に、Visual Studio Installer の 個別のコンポーネント
-> AI アシスタンス
-> GitHub Copilot
があることに気付きました。
拡張機能からインストールする場合と違いがあるのか確認しました。
DateTime
には Kind
プロパティがあり、Utc
や Local
という状態を持つ場合があります。
基本的には Unspecified
であり、Ticks
の日時のみが処理されます。
しかし一部の処理では Kind
を意識する必要があるため、変換方法や注意点をまとめます。
Doxygen でドキュメントに出力対象ではない C# メソッドにおいて、警告メッセージが表示されていました。
WARN_AS_ERROR を YES にすると、警告がエラーとして扱われてしまうため、該当部分のコードを Doyxgen から除外させることで警告を回避しました。
.NET SDK 8 Preview 4 以降、AssemblyInformationalVersion の末尾に Git SHA が自動付与されるようになりました。
これは SDK の仕様なので、.NET Framework を対象とするプロジェクトにも影響します。この自動付与を無効に設定する方法を説明します。
別記事へのクロスリファレンスのリンクを貼りたい場合、標準の shortcode の ref だと、URL が取得できます。しかし、記事タイトルは自分で入力する必要があります。記事タイトルとリンクの両方を自動出力する shortcode を作成する方法です。
GitHub に Push や Issue にコメントした際に、Slack に通知するように設定する手順です。
よく使うコマンドをメモしておきます。
Task.Run()
とラムダ式を使用すると、簡単にタスクを実行できます。しかし、ラムダ式で外部変数をキャプチャすると、クロージャによりメモリアロケーションが発生します。
外部変数を引数に取る静的メソッドを用意することで、ラムダ式のメモリアロケーションを削減できます。Task.Run()
では実現できないため、Task.Factory.StartNew()
を使用して実現する方法です。
XAML で定義した Resource を static に、C# 側で参照したり、x:static
でバインドする方法です。
.NET Standard や .NET Framework 開発環境においても、最新の C# 機能、.NET API を使用するための方法です。
\\
から始まる UNC パス のファイルをオープンする際に、例外が出るケースの対応方法です。
ビルドすると、SQLite.Interop.dll
がコピーされます。
公開(publish)した場合はコピーされないため、コピーされるように設定する方法です。
管理者権限でプロセスを実行する方法です。また反対に、管理者権限で実行中のプロセスから一般権限で別のプロセスを実行する方法です。
普段は日本語キーボード設定 (Google 日本語入力) を設定しており、英語 US キーボードの設定は不要です。
Apex Legends をプレイしていると、US キーボードの設定が勝手に追加されてしまう時があります。その場合は、以下の手順で設定を戻しています。
C# のプロジェクトを自己完結型で発行した場合や、NuGet のライブラリを使用した際に、サテライトアセンブリの言語フォルダが出力されます。
必要な言語フォルダのみ出力するように設定する方法です。
TCP, UDP の使用中のポートを全て取得する方法です。
アプリから動的に Web サーバーを立ち上げる際に、空きポートを指定する必要があったため、指定したポート番号以降の最初の空きポートを取得方法もメモします。
開いている NamedPipe の名前を全て取得する方法です。
.NET Core と .NET Framework の違いで例外が発生する注意点があります。
指定したコミットが含まれるタグを検索する方法です。git describe と git tag を使用して検索します。
指定したコミットがリリースされたアプリバージョン(git にタグ付けしている)を調べるために活用しました。
Environment.UserName ではなく、姓名のフルネームを取得する方法です。
Win32 API の GetUserNameEx
を使用して、高速に取得します。
会計ソフトで .xtx ファイルを出力した後に、電子申告とスマホ納付する手順です。
私は、クラウド会計ソフト freee を使用しています。2022年分の申告時点、freee で出来るのは .xtx ファイルの出力までです。
その後の e-Tax の操作手順を忘れてしまうと思うので、メモしておきます。