1个理论上简单但是网上找不到答案的问题

bulls5988 2010-09-27 03:53:41
我用了1个 ImageList控件 做图片轮换用来抽奖商标轮换。如下代码取我放进IMAGELIST的图片,现在我按下回车的时候TIMER为FALSE,pictruebox里的图片Imagelist.Image[i]这张图片,我想要取这个图片的图片名(文件名),能取到吗?如何取得?

我看到过一个程序用中文图片名,停止抽奖的时候就直接一个LABLE显示您抽中了"",比如这个图片叫"姚明.jpeg"就显示

您抽中了:姚明


private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Space)
{
timer1.Enabled = true;
label1.Visible = false;
label2.Visible = false;
}
if (e.KeyCode == Keys.Enter)
{
timer1.Enabled = false;
label1.Visible = true;
}
}


private void timer1_Tick(object sender, EventArgs e)
{

if (i>=imageList1.Images.Count)
{
i = 0;
}
else
{
this.pictureBox1.Image = this.imageList1.Images[i];
i = i + 1;
}
}



...全文
274 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
garfieldzf 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bulls5988 的回复:]

网上那个能根据文件名显示的,如何实现的?
[/Quote]

自己截个字符串吧,
把名字截出来!
linwanhai 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyazhe 的回复:]

要自己记录下来图片名字,比如创建一个数组
string[] names = new string[]{"姚明","邓肯","乔丹","凤姐"};
然后
label3.Text = "您抽中了:"+ names[i];
if(i == 3) label3.Text += "你真命苦";
[/Quote]

凤姐应该放到另一个数组中
3000sunqin 2010-09-28
  • 打赏
  • 举报
回复
很简单,你不要用ImageList控件
而是用下面的代码:

Dictionary<string,Image> myImageList;
myImageList = new Dictionary<string,Image>();
myImageList.Add("文件名称",new Bitmap("文件路径"));
//在myImageList中进行搜索抽奖即可

hongjiaoli 2010-09-28
  • 打赏
  • 举报
回复
截取字符串
string str="姚明.jpg";
str=str.substring(0,str.indexof("."));
think_fish1210 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyazhe 的回复:]
要自己记录下来图片名字,比如创建一个数组
string[] names = new string[]{"姚明","邓肯","乔丹","凤姐"};
然后
label3.Text = "您抽中了:"+ names[i];
if(i == 3) label3.Text += "你真命苦";
[/Quote]

很有意思的小程序,看来编程也是乐趣无处不在呀
bulls5988 2010-09-27
  • 打赏
  • 举报
回复
实在不行只能用逍遥的方法了,难道这个控件就能序号不能取名字吗?
wuyq11 2010-09-27
  • 打赏
  • 举报
回复
private IList<Image> ListImage = new List<Image>();
void timer1_Tick(object sender, EventArgs e)
{
pictureBox1.Image = ListImage[ImageIndex];
ImageIndex++;
if (ImageIndex > ListImage.Count-1)ImageIndex = 0;
}
完美算法 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bulls5988 的回复:]
网上那个能根据文件名显示的,如何实现的?
[/Quote]
算法只是过程,结果正确才是目的!
justiceyves 2010-09-27
  • 打赏
  • 举报
回复
拿了分果断走人!
bulls5988 2010-09-27
  • 打赏
  • 举报
回复
网上那个能根据文件名显示的,如何实现的?
兔子-顾问 2010-09-27
  • 打赏
  • 举报
回复
要自己记录下来图片名字,比如创建一个数组
string[] names = new string[]{"姚明","邓肯","乔丹","凤姐"};
然后
label3.Text = "您抽中了:"+ names[i];
if(i == 3) label3.Text += "你真命苦";
bulls5988 2010-09-27
  • 打赏
  • 举报
回复
label3.Text = imageList1.Images[i].PropertyItems.ToString();
或者
label3.Text = picturebox.Images[i].PropertyItems.ToString();
这样写,无论是哪个都

输出的是 "您抽到了:"system.drawing.imageing.propertyitem[]"
bulls5988 2010-09-27
  • 打赏
  • 举报
回复
没有NAME属性啊...
Rock870210 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bulls5988 的回复:]
既然IMAGESLIST都能读入图片、读入图片在它中的INDEX位置,也应该有方法能获取文件名吧。我想要取得并用LABLE输出它。
[/Quote]
既然已经有了Index,那就直接从ImageList控件中获取到,然后获取到它的Name就行了呀
bulls5988 2010-09-27
  • 打赏
  • 举报
回复
既然IMAGESLIST都能读入图片、读入图片在它中的INDEX位置,也应该有方法能获取文件名吧。我想要取得并用LABLE输出它。
porschev 2010-09-27
  • 打赏
  • 举报
回复
鸭梨山大帝 2010-09-27
  • 打赏
  • 举报
回复
"我想要取这个图片的图片名(文件名),能取到吗?如何取得?"
不要陷入思维死角,是先有图片地址,才能载入到PictureBox(流除外,如果用流就不存在所谓的文件名了.)
因此,你要取的图片名,就在你"停止抽奖的时候"PictureBox载入的图片地址而已.

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧