c# 怎么样创建一个picturebox控件,就是动态生成许多picturebox控件

2024-05-16 05:20

1. c# 怎么样创建一个picturebox控件,就是动态生成许多picturebox控件

首先,你需要清楚的是在C#里面是以类为基础的。差不多所有的东西都是封装在类里面的。所以说,如果你要完成一些操作,你可以将其当作普通的类来处理。。比如说你要生成许多的picturebox。那么你只需要用picturebox的类名来进行处理就可以了。用new来实现。
至于你说的动态生成它的name,location,locked,size属性的话,你可能就需要一些外部的变量来进行更改了。name的话,比较简单,就是什么picturebox1,2之类的。
在下补充一下,通常这种情况呢,类似于QQ表情选择面板一样,是吧.
那你用 FlowPanel 流布局面板 做为窗口来装所有动态生成的PictureBox即可.

c# 怎么样创建一个picturebox控件,就是动态生成许多picturebox控件

2. C# 动态生成PICTUREBOX的问题

GetFiles()是获得该文件夹下的所有文件,包括飞图片格式的文件,所以得到的文件有可能不是图片格式,故Image.FromFile(k)加载会报错, 

当报错的时候,你检查一下k的值,看看k到底是不是图片路径,或者直接加断点调试, 

解决办法很多,你可以先判断一下文件是否是图片格式,或者直接在循环里面加一个try, 


ps:一般图片文件夹都会包含一个“Thumbs.db”这个文件,这是个隐藏文件,记录图片缩略图的缓存,所以Image.FromFile(k)加载到这个文件肯定会报错,

3. C# 如何用数组在12个picturebox中随机产生12个不同的图片?希望代码详细一点,答案好会加分。

若干图片名分别存在数组中,用random(0,数组最大下标)函数随机整数作为要取得数组下标,下标保存在另一个数组B中,执行下一次random,和数组B对比,若已存在于B中则继续random,否则赋予picturebox图片地址。循环赋值12次即可。

C# 如何用数组在12个picturebox中随机产生12个不同的图片?希望代码详细一点,答案好会加分。

4. 用代码实现C++动态创建数组,并返回该数组,用函数实现

int * fun(int n)
{
 int *array = new int[n];
 return array;
}
//注意这样写不好,动态申明内存后,array数组得不到释放

5. 如何动态创建picturebox?

看来你没有学到“对象变量”这节的内容。你这样是定义了一个picturebox类型的对象变量,就像dim aa as integer 一样,因此你的xx还是空值,你必须给他赋值才能使用,如: 
dim xx as picturebox 
set xx=picture1 
这样你改变xx的属性就等于改变picture1的属性,这样不是动态创建的picturebox 

要动态的创建picturebox就要像ljl88900说的那样: 

Set xx = Me.Controls.Add("VB.PictureBox", "xx") 

然后再设置其属性!!


不想让它在窗体上的话,最后加一句:

Controls.Remove xx

如何动态创建picturebox?

6. C#如何动态的生成多个pictureBox控件,生成的pictureBox能实现不同的点击事件?

private int _NO = 0;        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {                        int x = 0;            int y =  _NO * 100;            CreatePictureBox(_NO.ToString(), x, y);            ++_NO;                    }        private bool CreatePictureBox(string name, int locX, int locY)        {            try            {                PictureBox pb = new PictureBox();                pb.Name = name;                pb.Location = new Point(locX, locY);                pb.BackColor = Color.LightBlue;                this.Controls.Add(pb);                pb.Click += new EventHandler(PictureBox_Click);                return true;            }            catch            {                return false;            }        }        private void PictureBox_Click(object sender, EventArgs e)        {            PictureBox pb = (PictureBox)sender;            MessageBox.Show(pb.Name);        }

7. C# PICTUREBOX数组问题

如果你的期盼格子线是直接画在form上,有人喜欢放到一个picturebox上,我们管这个form,或者picturebox叫做“父控件”。下面以form为例。
1、在父控件上放一个(绘制)picturebox(也可以用image,下面以picturebox为例);(绘制或放好,不要做其他任何事情,立即开始下一步;如果做了别的,就在开始下一步之前,先选中这个picturebox)
2、按下键盘的ctrl-c(两键联合),这时,form成为选中控件,如果以picturebox为父控件,则需要选中父控件;
3、按下ctrl-v(两键联合)。如果前面的操作都正确,此时会出现提示:
“picture1已存在,是否要建立控件数组”,点确定。
4、在form_load事件中写代码:
for i=0 to 127
   if i>1 then
       load picture1(i)
   else
       picture1(i).visual=false
   endif
   picture1(i).move 左边,上边,宽度,高度
next i

C# PICTUREBOX数组问题

8. C#如何将picturebox中的显示的图片转换成二进制的数组

没装VS2005,我手写给你思路
   MemoryStream ms = new MemoryStream();
              // 重要!!保存成文件流
                pictureBox1.Image.Save("a.bmp");
                FileStream fileStream = new FileStream("a.bmp", FileMode.Open, FileAccess.Read);
                BinaryReader binaryReader = new BinaryReader(fileStream);
                byte[] img = binaryReader.ReadBytes((int)fileStream.Length);
                binaryReader.Close();
                fileStream.Close();
                File.Delete("a.bmp");
//  好了 这个img 就是你要的