Link to home
Start Free TrialLog in
Avatar of Andrew Bass
Andrew BassFlag for United States of America

asked on

Changing picture box in C# Part 2

Hello,
I have a application that has an animation that runs every 2 minutes to remind users to use the application, this was done in the animation creation of the .gif.  What I want to have happen is when a user clicks the submit button another image comes up for 5 to 10 seconds and then reverts back to the original place image.  
I have followed the instructions from a previous post
https://www.experts-exchange.com/questions/24290678/Changing-picture-box-in-C.html

however I am getting context errors and such listed
referencing the image.  what am I missing?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Xml;
using System.ServiceModel;
using System.Net;
 
namespace Trigger_Tracker
{
    public partial class Form1 : Form
    {//form move on click and drag
        bool FormMoving;
        Point initialPoint;
        TriggerTrackerPictureBox frmPicture;
 
        public Form1()
        {//form move on click and drag
            InitializeComponent();
            comboBox1.SelectedIndex = 0;
            FormMoving = false;
 
            frmPicture = new TriggerTrackerPictureBox();
            frmPicture.localForm = this;
            frmPicture.Owner = this;
            frmPicture.Show();
            frmPicture.Width = 68;
            frmPicture.Height = 65;
            SetPositionOfPictureForm();
            // Load the images into memory
            imageMain = Image.FromFile(@"\\AZ2KNAS01\data\AZ-Service-Projects\Andrew's Programs and Data\Trigger Tracker\Trigger Tracker MOD\Trigger Tracker\Resources\AnimatedGecko2.gif");
            imageTemp = Image.FromFile(@"\\AZ2KNAS01\data\AZ-Service-Projects\Andrew's Programs and Data\Trigger Tracker\Trigger Tracker MOD\Trigger Tracker\Resources\havaWINK_ANIMATED.gif");
            // Set the picture box main image here
            TriggerTrackerPictureBox.Image = imageMain;
            // Set the timer interval to 5 seconds, each value 1000 = 1 second.
            timer1.Interval = 5000;
 
        }
 
        private void SetPositionOfPictureForm()
        {
            frmPicture.Top = this.Top + 26;
            frmPicture.Left = this.Left + 87;
        }
 
        private void TriggerTrackerLoad(object sender, EventArgs e)
        {
            // Load the images into memory
            imageMain = Image.FromFile(@"C:\temp\imageMain.jpg");
            imageTemp = Image.FromFile(@"C:\temp\imageTemp.jpg");
            // Set the picture box main image here
            TriggerTrackerPictureBox.Image = imageMain;
            // Set the timer interval to 5 seconds, each value 1000 = 1 second.
            timer1.Interval = 5000;
 
        }
 
        private void PolicyNumberLabel(object sender, EventArgs e)
        {
 
        }
 
        private void TrackerButton(object sender, EventArgs e)
        {
            string listGUID = "A93E1A7E-67D0-4D7D-A4ED-803D7DFE684B";
            string viewGUID = "6B2F3EF2-4B0C-41E1-B87E-0C3185B587DD";
            //string viewGUID2 = "6B2F3EF2-4B0C-41E1-B87E-0C3185B587DD";
 
            int ItemCounter = 1;
            ServiceList.Lists listService = new ServiceList.Lists();
           // RetentionLists.ListsSoapClient listService = new RetentionLists.ListsSoapClient();
 
            //////
           listService.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
           //listService.ChannelFactory.Credentials.Windows.ClientCredential   = System.Net.CredentialCache.DefaultNetworkCredentials;
 
            XmlNode activeItemData = listService.GetListItems(listGUID, viewGUID, null, null, "100", null);
            XmlDocument xDoc = new XmlDocument();
            string tmpString = activeItemData.InnerXml.Replace("\r\r", "");
            xDoc.LoadXml(tmpString);
            XmlNamespaceManager nsManager = new XmlNamespaceManager(xDoc.NameTable);
            nsManager.AddNamespace("z", "#RowsetSchema");
            nsManager.AddNamespace("rs", "urn:schemas-microsoft-com:rowset");
 
            XmlNodeList xNode = xDoc.SelectNodes("/rs:data/z:row", nsManager);
 
            foreach (XmlNode tmpNode in xNode)
                ItemCounter++;
 
            StringBuilder strBuilder = new StringBuilder();
            strBuilder.Append("<Method ID='" + ItemCounter + "' Cmd='New'>");
            strBuilder.Append("<Field Name='Attachments'>" + "0" + "</Field>");
            strBuilder.Append("<Field Name='Title'>" + PolicyNumber.Text + "</Field>");
            strBuilder.Append("<Field Name='Reason'>" + comboBox1.Text + "</Field>");
            strBuilder.Append("</Method>");
 
            string strBatch = strBuilder.ToString();
 
            XmlDocument newDoc = new XmlDocument();
            XmlElement newElement = newDoc.CreateElement("Batch");
            newElement.SetAttribute("OnError", "Continue");
            newElement.SetAttribute("ViewName", viewGUID);
            newElement.InnerXml = strBatch;
            
            XmlNode returnNode = listService.UpdateListItems(listGUID, newElement);
 
            this.comboBox1.Text = "Please Select....";
            this.PolicyNumber.Text = "";
            this.PolicyNumber.Mask = "0000000000";
 
            comboBox1.Focus();
            // After the set interval this method is called by the system
            // Disable the timer from triggering again
            TriggerTrackerPictureBox.Enabled = false;
            // Reset the image back to the main image
            TriggerTrackerPictureBox.Image = imageMain;
 
        }
 
        private void PolicyNumberTextBox(object sender, EventArgs e)
        {
 
        }
 
 
        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            
        }
 
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {           
            
        }
 
        private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
        {
 
        }
 
 
        public void Form1_MouseUp(object sender, MouseEventArgs e)
        {//form move on click and drag
            FormMoving = false;
        }
 
        public void Form1_MouseMove(object sender, MouseEventArgs e)
        {//form move on click and drag
            if (FormMoving)
            {
                if ((Left + e.X - initialPoint.X) <= 0)
                    Left = 0;
                else if ((Right + e.X - initialPoint.X) >= Screen.PrimaryScreen.Bounds.Right)
                    Left = Screen.PrimaryScreen.Bounds.Right - Width;
                else
                    Left = Left + e.X - initialPoint.X;
                if ((Top + e.Y - initialPoint.Y) <= 0)
                    Top = 0;
                else if ((Bottom + e.Y - initialPoint.Y) >= Screen.PrimaryScreen.Bounds.Bottom)
                    Top = Screen.PrimaryScreen.Bounds.Bottom - Height;
                else
                    Top = Top + e.Y - initialPoint.Y;
            }
            SetPositionOfPictureForm();
        }
 
        public void Form1_MouseDown(object sender, MouseEventArgs e)
        {//form move on click and drag
            FormMoving = true;
            initialPoint = new Point(e.X, e.Y);
        }
 
        public void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {//form move on click and drag
            FormMoving = true;
            initialPoint = new Point(e.X, e.Y);
        }
 
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
        }
 
        private void pictureBox1_MouseHover(object sender, EventArgs e)
        {
        }
 
        public void label1_MouseHover(object sender, EventArgs e)
        {
            FormMoving = false;
        }
 
        public void label1_MouseUp(object sender, MouseEventArgs e)
        {
            FormMoving = false;
        }
 
        private void label1_MouseDown(object sender, MouseEventArgs e)
        {
 
        }
 
        private void label1_MouseMove(object sender, MouseEventArgs e)
        {
 
        }
 
        public void Form1_MouseHover(object sender, EventArgs e)
        {
            this.Opacity = 1;
        }
 
        public void Form1_MouseLeave(object sender, EventArgs e)
        {
            if(!PolicyNumber.Focused)
                this.Opacity = .25;
        }
 
        public void pictureBox1_MouseLeave(object sender, EventArgs e)
        {
            this.Opacity = 1;
        }
 
        public void pictureBox1_MouseHover_1(object sender, EventArgs e)
        {
            this.Opacity = 1;
        }
 
        public void Form1_Click(object sender, EventArgs e)
        {
            comboBox1.Focus();
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            // After the set interval this method is called by the system
            // Disable the timer from triggering again
            TriggerTrackerPictureBox.Enabled = false;
            // Reset the image back to the main image
            TriggerTrackerPictureBox.Image = imageMain;
 
        }
    }
}

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of oobayly
oobayly
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Andrew Bass

ASKER

Is there any changes in properties or controls that need to be added in this way?
Can't see any changes that need to be made, other than the fact it would make the timer redundant. Does the multithreaded version fit your needs and work the way expected?
I pasted the code but I am having some troubles getting it to react without errors.  It seems to dislike the word image and when i replace it with the reference it gives me a context error.  
What do you mean by a "Context error", is it a compile time error, or does it occur at runtime. What's the error message.
When talking about errors in .net, it's best to post the Exception type (ie. ArgumentNullException) and the exception message. This way it's possible for us to determine what is causing the error.
thanks oobayly I have a busy morning so I will post that error later today.   Thank you for your help
Errors Received

Error     1          The name 'imageMain' does not exist in the current context           \\AZ2KNAS01\data\AZ-Service-Projects\Andrew's Programs and Data\Trigger Tracker\Trigger Tracker MOD\Trigger Tracker\Form1.cs          35         13            Trigger Tracker

Error     2          The name 'imageTemp' does not exist in the current context          \\AZ2KNAS01\data\AZ-Service-Projects\Andrew's Programs and Data\Trigger Tracker\Trigger Tracker MOD\Trigger Tracker\Form1.cs          36         13            Trigger Tracker

Error     3          'Trigger_Tracker.TriggerTrackerPictureBox' does not contain a definition for 'Image'   \\AZ2KNAS01\data\AZ-Service-Projects\Andrew's Programs and Data\Trigger Tracker\Trigger Tracker MOD\Trigger Tracker\Form1.cs           38         38            Trigger Tracker

Error     4          The name 'imageMain' does not exist in the current context           \\AZ2KNAS01\data\AZ-Service-Projects\Andrew's Programs and Data\Trigger Tracker\Trigger Tracker MOD\Trigger Tracker\Form1.cs          38         46            Trigger Tracker

Error     5          The name 'imageMain' does not exist in the current context           \\AZ2KNAS01\data\AZ-Service-Projects\Andrew's Programs and Data\Trigger Tracker\Trigger Tracker MOD\Trigger Tracker\Form1.cs          53         13            Trigger Tracker

Error     6          The name 'imageTemp' does not exist in the current context          \\AZ2KNAS01\data\AZ-Service-Projects\Andrew's Programs and Data\Trigger Tracker\Trigger Tracker MOD\Trigger Tracker\Form1.cs          54         13            Trigger Tracker

Error     7          'Trigger_Tracker.TriggerTrackerPictureBox' does not contain a definition for 'Image'   \\AZ2KNAS01\data\AZ-Service-Projects\Andrew's Programs and Data\Trigger Tracker\Trigger Tracker MOD\Trigger Tracker\Form1.cs           56         38            Trigger Tracker

Error     8          The name 'imageMain' does not exist in the current context           \\AZ2KNAS01\data\AZ-Service-Projects\Andrew's Programs and Data\Trigger Tracker\Trigger Tracker MOD\Trigger Tracker\Form1.cs          56         46            Trigger Tracker

 
Sorry, been manic in the office.
I'd assumed that imageTemp & imageMain have been defined in the class. Also I'd assumed from the name that TriggerTrackerPictureBox is a PictureBox control, but as far as I can tell it's a type.
Thanks!