0

メソッドを使用してすべてのボタンの背景画像のパスを取得しようとしていますが、パスを取得できないようです。これは私のコードです

b1.BackgroundImage = Image.FromFile(C:\\Users\\m\\Documents\\Visual Studio 
2010\\Projects\\PApp\\Papp\\1.jpg) ;

b2.BackgroundImage = Image.FromFile(C:\\Users\\m\\Documents\\Visual Studio 2010\\Projects\\PApp\\Papp\\2.jpg) ;

Console.WriteLine(b2.BackgroundImage);
Console.WriteLine(b1.BackgroundImage);

ボタンに画像を表示できますが、コンソールにパスを表示したいのですが、取得しているのはSystem.Drawing.Bitmapだけです。ちなみにパスは静的です。

4

2 に答える 2

1

できません。ビットマップをロードすると、ビットマップオブジェクトはパスを必要としないため、パスを忘れます。

新しいクラスを作成して、ボタンを継承させることができます。上記のコードを実行して基本クラス(ボタン)BackgroundImageを設定するBackgroundImagePathというプロパティを追加します。また、それをプライベート変数でリスし、プロパティで咳をします。

それはそれを偽造しています。しかし、それが唯一の方法です。

于 2012-08-02T03:30:50.653 に答える
0

Winformsデザイナを使用してBackgroundImageプロパティを設定した場合、VisualStudioは.Designer.csファイルに次の行を生成します。

this.button1.BackgroundImage = global::WindowsFormsApplication5.Properties.Resources.my_image_name;

ご覧のとおり、System.Drawing.Bitmapタイプの値からSystem.Drawing.Imageタイプのプロパティに影響を与えています。ここにある唯一の情報は画像そのものです。

自分で画像を追加した場合:

string resourceKey = "my_image_name";
this.button1.BackgroundImage = (System.Drawing.Image)Properties.Resources.ResourceManager.GetObject(resourceKey);
于 2012-08-02T03:26:18.937 に答える