があります。ユーザーはリソース ファイルからPicturebox
選択できます。backgroundimage
resourcename
後で、からを取得したいと思いpicturebox
ます。
私はすでにこれを試しました:
MessageBox.Show(((PictureBox)sender).BackgroundImage.ToString());
しかし、それは私に写真のフォーマットを与えました..次のようなものはありません:
MessageBox.Show(((PictureBox)sender).BackgroundImage.Name.ToString());
Image を設定するときに aTag
を theに設定することについてはすでに考えていました...しかし、これは地獄のように面倒です...Picturebox
picturename
backgroundimage
では、リソースとして使用されるリソースの名前を簡単に取得するにはどうすればよいPicturebox
でしょうか。
全体の状況を説明する必要があると思います:たくさんの RAID ボタン
を含むフォームを持っています...
これらのボタンの 1 つを選択してパネルをクリックすると、パネル
は選択された radiobuttonimage に変わります...
パネルのクリックイベント:
PanelClick(object obj ,...)
{
if(radiobuttonApple.checked)
{
obj.backgroundimage = resource.apple;
}
if(radiobuttonPear.checked)
{
obj.backgroundimage = resource.Pear;
}
}
さらに何百もの...そして後で、背景画像がどのリソースファイルであるかを知りたい..
次のようなものはありませんか?
(リソースのようなラジオボタンに名前を付ける場合)
PanelClick(object obj ,...)
{
obj.backgroundimage = resource[selectedradiobutton.Name]
obj.tag = selectedradiobutton.Name
}
だから今LINQを使用しようとしています:
RadioButton checkedRadioButton = panel1.Controls.OfType<RadioButton>().FirstOrDefault(r => r.Checked);
obj.tag = checkedRadioButton.Text;
だから私は名前で動的なリソースを取得する方法を知る必要があるだけです。
obj.backgroundimage = resource[checkedRadioButton.Text];
resourcemanager を悪用します:
var resman = new System.Resources.ResourceManager(
"RootNamespace.Pictures",
System.Reflection.Assembly.GetExecutingAssembly()
)
var image = resman.GetPicture("checkedRadioButton.Text");
これがうまくいくことを願っています..