首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# winform浏览图片的有关问题,懂得请进

2012-03-30 
C# winform浏览图片的问题,懂得请进!我做了一个图片浏览,使用openfiledialog打开图片,代码如下:C# codestr

C# winform浏览图片的问题,懂得请进!
我做了一个图片浏览,使用openfiledialog打开图片,代码如下:

C# code
        string[] picArr;        int sum = 0;        int pageIndex = 0;        public void OpenFile(object sender, EventArgs e)        {            OpenFileDialog ofd1 = new OpenFileDialog();            ofd1.InitialDirectory = "d:\\MyDocument";            ofd1.Filter = "(*.jpg)|*.jpg|(*.*)|*.*";            ofd1.FilterIndex = 1;            ofd1.RestoreDirectory = true;            ofd1.Multiselect = true;   //允许选择多个文件            if (ofd1.ShowDialog() == DialogResult.OK)            {                Image myImage = Image.FromFile(ofd1.FileName);                spc3.Panel1.BackgroundImage = myImage;                spc3.Panel1.Refresh();                picArr = ofd1.FileNames;                if (picArr.Count() == 1)                {                    sum++;                    pageIndex = sum;                    string s = "  " + pageIndex + "/" + sum;                    textBox1.Text = s;                }                else                {                    sum = picArr.Count();                    pageIndex = sum;                    string s = "  " + pageIndex + "/" + sum;                    textBox1.Text = s;                }            }        }

其中textBox1是用来显示第几张图片,格式为1/4,我写的这种情况在一次性添加多张图片的时候,使用左右按钮浏览图片不会出问题。
向左的按钮,
C# code
private void button13_Click(object sender, EventArgs e)        {            if (sum == 0)            {                pageIndex = sum;            }            else            {                if (pageIndex > 1)                {                    string s = "  " + (pageIndex - 1) + "/" + sum;                    textBox1.Text = s;                    pageIndex--;                }                else                {                    pageIndex = sum;                    string s = "  " + pageIndex + "/" + sum;                    textBox1.Text = s;                }                int i = pageIndex - 1;                spc3.Panel1.BackgroundImage = Image.FromFile(picArr[i]);            }        }

向右的按钮,
C# code
        private void button14_Click(object sender, EventArgs e)        {            if (sum == 0)            {                pageIndex = sum;            }            else            {                if (pageIndex < sum)                {                    string s = "  " + (pageIndex + 1) + "/" + sum;                    textBox1.Text = s;                    pageIndex++;                }                else                {                    pageIndex = 1;                    string s = "  " + pageIndex + "/" + sum;                    textBox1.Text = s;                }                int i = pageIndex - 1;                spc3.Panel1.BackgroundImage = Image.FromFile(picArr[i]);            }        }

当图片一张一张载入的时候,picArr里面保存的图片就只有单张而已,我该如何把一张张加载的图片保存picArr里。
也就是说,我的问题是多张图片一起加载的时候,图片是保存在picArr里,这个没问题;而一张张加载的时候,图片要如何保存在picArr里。请高手指点

[解决办法]
网上的控件大把的哦
[解决办法]
picArr = picArr.Union(ofd1.FileNames).Distinct().ToArray();
这论坛不能编辑自己的帖子 太恶心了
[解决办法]
string[] picArr; 数组要遂个添加元素,得利用上下标,加载一张下标就往后挪一下(自加)
不过用List<string>就没有这个烦恼了,每次Add()一下就行了
------解决方案--------------------


探讨
引用:

picArr = picArr.Union(ofd1.FileNames).Distinct().ToArray();
这论坛不能编辑自己的帖子 太恶心了

谢谢,不过我写进去之后picArr=null,这是什么问题?

[解决办法]
图像处理 类文件:http://bbs.csdn.net/
[解决办法]
想快速就用控件,不然慢慢等
[解决办法]
你如果用普通string[]的话,在第一次赋值时你就固定了它边界,用泛型集合比较灵活,多次添加里面的图片,不过建议用个img类型集合,将图片存到内存或者缓存中更好!

热点排行