【解決】C# ツールボックス 出てこないコントロールの直し方 Visual Studio Bug

Visual Studio 2017での怪事件。あるはずのコントロールがツールボックスに無い。。。

 

Visual Studio開いてぱぱっとアプリつくろうっか。

あれ?

PictureBoxコントロールどこいった?

 

 

【直し方】

1.Visual Studioを閉じます。

2.以下のフォルダの内容を退避しておきます。(削除してね)

C:\Users\ユーザ名\AppData\Local\Microsoft\VisualStudio\15.0_83921675

※インストールしているOSによって多少格納先フォルダが異なるので調整してね。

3.Visual Studioを開きます。(少し時間がかかります。)

4.ね。簡単でしょ。

 

 

【解決】devenv.sln 以下の項目への変更を保存しますか?

Visual Studio *** を管理者権限で実行した際に

「devenv.sln」を保存しますか?というダイヤログが毎回出る人はだいぶ鬱陶しい思いをしているに違いない。

【解決方法】

1.C:\Program Files (x86)\Common Files\microsoft_shared\MSEnv\VSLauncher.exeのプロパティを開く。

2.互換性タブの特権レベル設定で「管理者としてこのプログラムを実行する」にチェックを入れOKを押し設定する。

 

以上である。非常に簡単でしょう。

 

 

ちなみにVisual StudioのバージョンによってVSLauncher.exeの格納先が違うようなので

C:\Program Files (x86)\Common Files\microsoft_shared\まで潜ってVSLauncher.exeを

検索すると早いかもしれない。

u-blox VCPはC#(.NET)では利用できないので注意!!The given port name does not start with COM/com or does not resolve to a valid serial port. Parameter name: portName”.

u-bloxはGPSモジュールとして有名なメーカーですが、.Netで開発を行うとCOMがオープンできません。これはあなたのプログラムが悪いわけではなく。

このVCPドライバが対応していないポンコツなだけです。

「The given port name does not start with COM/com or does not resolve to a valid serial port. Parameter name: portName”.」

 

公式のVCPドライバリリースノートを確認してください。

・このドライバは、ハードウェアシリアルポートを完全にはエミュレートしていません。

・.Net SerialPortクラスはこのドライバで作成されたCOMポートを実際のCOMポートとして認識しない為、このクラスを使用してこのドライバと通信することはできません。

 

回避の方法としては

・SerialPortクラスを利用しない事です。CreateFile経由かC++のCreateFile経由でOpenすれば利用できるでしょう。

・またはu-blox製品を利用しない事です。非常に中途半端なドライバをリリースするメーカーさんですね。