Solved

PictureBox DataBinding

Posted on 2008-09-29
3
3,046 Views
Last Modified: 2012-05-05
Hello,

I am trying to DataBind a PictureBox with a stored BLOB image in a DB2 database.

I am able to bind the image using a Binding object as seen in the code below.

My problem is the datasource HasChanged() property is always true even if I don't change the image?

Any idea as to how I can fix this?

Thanks for any help.

MAC
ON_LOAD:

Binding binding = new Binding("Image", myRecord.Tables[0], "IMAGE", true);

this.pictureBox1.DataBindings.Add(binding);
 
 
 
 

ON_IMAGE_CHANGE:
 

OpenFileDialog openFileDialog1 = new OpenFileDialog();

openFileDialog1.Filter = "JPEG files|*.jpg|Bitmap files|*.bmp|GIF files|*.gif|All files|*";

DialogResult mResult = openFileDialog1.ShowDialog(this);
 

if (mResult == DialogResult.OK)

{

    myImageFile = openFileDialog1.FileName;

    this.pictureBox1.Image = Image.FromFile(myImageFile);

}

Open in new window

0
Comment
Question by:mac-will
  • 2
3 Comments
 
LVL 37

Expert Comment

by:momi_sabag
ID: 22602933
which ado driver do you use?
0
 
LVL 8

Author Comment

by:mac-will
ID: 22604568
Hi,

I use the DB2 .NET driver.
Thanks
MAC
0
 
LVL 8

Accepted Solution

by:
mac-will earned 0 total points
ID: 22613456
I found my own solution.  I've posted it below for anyone who might find this useful:



You need to have an ImageChanged event.  Make a new class

   class MyPictureBox : PictureBox

    {
 

        public event EventHandler ImageChanged;
 

        //MUST USE NEW BECASUSE PictureBox.Image is not virtual

        public new Image Image

        {

            get

            {

                return base.Image;

            }

            set

            {

                bool imageChanged = base.Image != value;
 

                base.Image = value;

               

                if (imageChanged)

                {

                    this.OnImageChanged(new EventArgs());

                }

            }

        }
 

        protected virtual void OnImageChanged(EventArgs e)

        {

            ImageChanged(this, e);

        }
 

}

Open in new window

0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

895 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now