【C#】【WindowsForms】ボタンを元の色に戻す

一度でも変更してしまうと、以下の2つのプロパティを設定しないと元に戻らない。

//ボタンの色を消す
button.BackColor = Color.Empty; //ボタンの色を変えるとfalseが設定されるため、
//既定(true)にしてスタイルを戻す
button.UseVisualStyleBackColor = true;

 

【C#】構成システムを初期化できませんでした。エラーが発生する

<エラー内容>

System.Configuration.ConfigurationErrorsException: ‘構成システムを初期化できませんでした。’

内部例外
ConfigurationErrorsException: config ファイルにつき 1 つの <configSections> 要素のみが許可されます。要素が存在する場合、ルート <configuration> 要素の最初の子でなければなりません。

<原因>

App.configファイルに、<configSections>を追加した際、既に存在していた<startup>よりも後に記載したところ、上記エラーが発生。

<configuration>の開始タグ直後に、<configSections>を移動したところエラーは出なくなった。

(良く分からないが、この仕様は変なのでは???)

【C#】FormまたはButtonのClickイベントが発生しない場合(管理者権限で実行していないか?)

ここでは一例です。他にも原因があるかもしれません。

<現象>

Win32 APIのSendInputを利用してマウス操作を自動化して、FormやButtonのクリックを試したが、マウスカーソルの移動はできるが、クリックイベントが来なかった。

<原因>

クリックしたいFormが管理者権限になっており、通常権限にしたところクリックできるようになった。

(C#は直接は関係ない話だと思います・・・)

【VB.NET】RSS読み込み時、「リモート パーティがトランスポート ストリームを終了したため、認証に失敗しました。」が発生する

■現象

電光ニュースのYahooのRSS読み込み時、「System.Net.WebException: 接続が切断されました: 送信時に、予期しないエラーが発生しました。。 —> System.IO.IOException: リモート パーティがトランスポート ストリームを終了したため、認証に失敗しました。」エラーになる現象を確認。

YahooがTLS1.2より前のプロトコルに対応しなくなったことが原因。

■対応

TLS1.2を有効にするため、.NET Framework4から4.6に上げた後、RSS取得処理の前に、

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

を追加したところ、エラー無く取得できるようになった。

【UWP】WindowsFormとの対応表

WindowsForm UWP
クリックイベント private void button_Click(object sender, EventArgs e) private void button_Click(object sender, RoutedEventArgs e)
ラベルコントロール Label TextBlock
コントロール表示 control.Show() control.Visibility = Visibility.Visible
コントロール非表示 control.Hide() control.Visibility = Visibility.Collapsed
テキストボックスクリア textBox.Clear() textBox.Text = “”
テキストボックスKeyDownイベント private void textBox_KeyDown(object sender, KeyEventArgs e) private void textBox_KeyDown(object sender, KeyRoutedEventArgs e)
TextBoxの最終行へスクロール https://dobon.net/vb/dotnet/control/tbscrolltolast.html https://code.msdn.microsoft.com/windowsapps/How-to-scroll-to-the-a8ea5867
タイマー Timerコントロール DispatcherTimerコントロール
タイマーTickイベント private void timer_Tick(object sender, EventArgs e) private void timer_Tick(object sender, object e)
EntityFramework EntityFramework Microsoft.EntityFrameworkCore

プロジェクトのターゲットの最小バージョンをWindows 10 Fall Creators Updateに上げないと、NuGetから入れられない

SQLite System.Data.SQLite Microsoft.EntityFrameworkCore.Sqlite

SqliteConnectionやSqliteCommandのようにSQLiteの表記が先頭以外小文字になっているので注意

SQLite新規ファイル作成 SQLiteConnection.CreateFile(“ファイル名”); CreateFileが無くなっていた・・・
アクセスするだけで、0KBのファイルが作成された。
フォルダ名を指定せずにファイル作成 カレントディレクトリに作成される Windows.Storage.ApplicationData.Current.LocalFolder.Path

例)C:\Users\ユーザ名\AppData\Local\Packages\xxxxx-xxxxx-xxxxx-xxxxx_xxxxx\LocalState

【UWP】NuGetでEntityFrameworkCoreをインストールするとエラーが発生する

  • エラー内容
    Microsoft.EntityFrameworkCore 2.1.1 は uap10.0.10240 (UAP,Version=v10.0.10240) / win10-arm64-aot と互換性がありません。 パッケージ Microsoft.EntityFrameworkCore 2.1.1 がサポートするもの: netstandard2.0 (.NETStandard,Version=v2.0)

 

  • エラー解消方法
    プロジェクトのプロパティ→アプリケーション→ターゲットを、Windows 10の無印から、Fall Creators Updateに変更したところエラーが解消された!

【Visual Studio2017】デバッグが極端に遅い場合は、IntelliTraceを無効にする

EXE単体で動作させた場合と、Visual Studio2017でデバッグした場合とで動作速度が極端に違う現象に遭遇。
ツール→オプション→IntelliTraceにて、「IntelliTraceを有効にする」のチェックを外すことで、EXE単体の動作速度とほぼ変わらずデバッグできるようになった。 続きを読む 【Visual Studio2017】デバッグが極端に遅い場合は、IntelliTraceを無効にする