Solved

PictureBox DataBinding

Posted on 2008-09-29
3
3,075 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

How Do You Stack Up Against Your Peers?

With today’s modern enterprise so dependent on digital infrastructures, the impact of major incidents has increased dramatically. Grab the report now to gain insight into how your organization ranks against your peers and learn best-in-class strategies to resolve incidents.

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…
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

809 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