用picturebox放置地图,想在上面加载一些图元,(其实就是bmp类型的图片)C#中好象没有这样的控件直接调用吧?vb中有image可以的,在c#中怎么做呢?

解决方案 »

  1.   

    public class PipeControl : System.Windows.Forms.UserControl
    添加一个新的用户自定义控件里面放个picturebox 然后用代码控制
      

  2.   

    那C#中是不是只有picturebox可以用来放置图片?
      

  3.   

    很多控件都有Graphics,可以通过Graphics来画
    比如panel:
    private void panel1_Paint(object sender, PaintEventArgs e)
            {
                Bitmap bitmap = new Bitmap("c:\\test.bmp");
                e.Graphics.DrawImage(bitmap, new Point(0,0);
            }
      

  4.   

    谢谢icehawk,还想请教一下,我用picturebox加载地图时,如果地图文件较大,比如9M以上,窗体打开时非常慢,这跟我机器内存较小也有关系,那么有什么办法能缓解这种现象呢?地图加载后要动态加载若干图元,可能很多,几百个,那我用什么控件来画这些图元比较好?(图元要可以单击、双击、闪烁)我用picturebox来加载,不知道会不会比较占内存?保存和读取图片有两种方式,一种是以文件的形式保存在硬盘中,一种是保存在数据库中,这两种方式那种比较好?有什么不同?
      

  5.   

    继承Picturebox控件,拓展一下,这个问题不难...
      

  6.   

    如果地图文件较大,比如9M以上,窗体打开时非常慢,这跟我机器内存较小也有关系,那么有什么办法能缓解这种现象呢?
    --------------------------------------------------------------------
    你可以不要再打开窗体的时候马上就load图片,首先把窗体显示出来,然后让用户等待,甚至可以显示导入的进度。地图加载后要动态加载若干图元,可能很多,几百个,那我用什么控件来画这些图元比较好?(图元要可以单击、双击、闪烁)我用picturebox来加载,不知道会不会比较占内存?
    --------------------------------------------------------------------
    可以的,其实控件用不了多少内存,主要是图像使用的内存多
    保存和读取图片有两种方式,一种是以文件的形式保存在硬盘中,一种是保存在数据库中,这两种方式那种比较好?有什么不同?
    --------------------------------------------------------------------
    保存的方式按照需求吧,不管保存到文件还是数据库中,应该都是按照图元进行保存的,都可以按照采用2进制保存的(ps,如果保存数据库,需要考虑图片的大小啊,往数据库插入几M的数据可是相当慢的)。当然,保存文件可以直接保存成图片格式。
      

  7.   

    要闪烁容易,定时设置Picture的Visible为false不可见true可见就闪了。
      

  8.   

    LZ 是想一个点闪吧?
    image 放个透明png图片进去 定位再闪好了
      

  9.   

    怎么样使图元的背景透明?我已经将背景色变成transpatren,但还是有灰色的背景?