【解決方法】ボタンのクリック時にボタンの画像を変更する方法は?


Change the image of the button when clicking the button. ex: When I click for the first time, the number 1 image should come and after clicking the second time, the image of number 2 should come and when I click for the third time, the image of number 1 should come.

私が試したこと:

private void Connectbtn_Click(object sender, EventArgs e)
       {
           Image bkg = Image.FromFile(@"D:\Documents\New folder\img1.PNG");
           Image bk = Image.FromFile(@"D:\Documents\New folder\img2.PNG");

           if (Connectbtn.Enabled)
           {
               Connectbtn.BackgroundImage = bkg;
           }
           else
           {
               Connectbtn.BackgroundImage = bk;
           }
       }

this is not working 

解決策 1

引用:

これは機能していません

これはおそらく、私たちが受け取る最も役に立たない問題レポートです。 何が起こっているか、いつ起こるかについては何も教えてくれません。
では、あなたが期待していなかった、またはしていなかったことを教えてください。
それを実現するためにあなたがしたことを教えてください。
エラーメッセージを教えてください。
「質問を改善する」ウィジェットを使用して質問を編集し、より良い情報を提供します。

それ以外の場合は、アプリで何が問題になっている可能性があるかを推測する必要があります!
この推測では、明らかな問題が 1 つあります。これは、あなたが遭遇した問題である場合もあれば、そうでない場合もあります。

ドキュメントから始めます。 Image.FromFile[^]:

引用:

備考
マネージド GDI+ には、次のファイルの種類をサポートする組み込みのエンコーダーとデコーダーがあります。

BMP

GIF

JPEG

PNG

TIFF

イメージが破棄されるまで、ファイルはロックされたままになります。

ファイルに有効な画像形式がない場合、または GDI+ がファイルのピクセル形式をサポートしていない場合、このメソッドは OutOfMemoryException 例外をスローします。

何のビットで 大胆な つまり、ボタンを初めてクリックすると、2 つの画像が読み込まれます。2 回目は読み込まれず、アプリは例外をスローします。

その代わりに、2 つの画像を static readonly あなたの一部としての画像変数 static フォーム コンストラクターを作成し、それらをボタン イメージとして使用します。

または、画像をリソースとしてアプリケーションに追加し、そこから直接使用することをお勧めします。

コメント

タイトルとURLをコピーしました