我有一个Picturebox
,用户可以从backgroundimage
资源文件中选择它。
后来我想resourcename
摆脱picturebox
。
我已经尝试过这个:
MessageBox.Show(((PictureBox)sender).BackgroundImage.ToString());
但它给了我图片的格式..没有类似的东西:
MessageBox.Show(((PictureBox)sender).BackgroundImage.Name.ToString());
并且我已经考虑在设置图像时将 aTag
设置Picturebox
为picturename
......但这很烦人......
那么如何轻松获取用作backgroundimage
at的资源的名称Picturebox
?
我想我必须解释一下整个情况:
我有一个带有很多 raidbuttons 的表单...
如果您选择其中一个按钮并单击面板,
面板将更改为选定的单选按钮图像...
面板的点击事件:
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];
并且不使用资源管理器:
var resman = new System.Resources.ResourceManager(
"RootNamespace.Pictures",
System.Reflection.Assembly.GetExecutingAssembly()
)
var image = resman.GetPicture("checkedRadioButton.Text");
我希望这会奏效..