Click here to Skip to main content
15,895,011 members
Home / Discussions / C#
   

C#

 
AnswerRe: Help on the following Code in Steganography in Bitmaps Pin
Ravi Bhavnani9-Apr-06 6:04
professionalRavi Bhavnani9-Apr-06 6:04 
QuestionHow do I Remove Focus Cues on .NET Controls (selection outlines) Pin
Mikzi9-Apr-06 5:58
Mikzi9-Apr-06 5:58 
QuestionKey Press Event In C# Pin
Areff9-Apr-06 5:28
Areff9-Apr-06 5:28 
AnswerRe: Key Press Event In C# Pin
Jakob Farian Krarup9-Apr-06 6:16
Jakob Farian Krarup9-Apr-06 6:16 
AnswerRe: Key Press Event In C# Pin
Graham Nimbley9-Apr-06 14:46
Graham Nimbley9-Apr-06 14:46 
QuestionUnActivate C# Form Pin
Areff9-Apr-06 5:16
Areff9-Apr-06 5:16 
AnswerRe: UnActivate C# Form Pin
User 66589-Apr-06 7:19
User 66589-Apr-06 7:19 
QuestionForm to Web Service Pin
babamara9-Apr-06 4:42
babamara9-Apr-06 4:42 
Hi, all.
I want to convert this form to a web service but my knowladge is not enough. Please help.

using System;<br />
using System.Drawing;<br />
using System.Collections;<br />
using System.ComponentModel;<br />
using System.Windows.Forms;<br />
using System.Data;<br />
using System.Data.SqlClient;<br />
<br />
namespace AlbumViewer<br />
{<br />
	/// <summary><br />
	/// Summary description for Form1.<br />
	/// </summary><br />
	public class MainForm : System.Windows.Forms.Form<br />
	{<br />
		private System.Windows.Forms.PictureBox pictureBox;<br />
		private System.Windows.Forms.MainMenu mainMenu;<br />
		private System.Windows.Forms.MenuItem menuItem3;<br />
		private System.Windows.Forms.TreeView treeAlbum;<br />
		private System.Windows.Forms.MenuItem mnuFile;<br />
		private System.Windows.Forms.MenuItem mnuOpen;<br />
		private System.Windows.Forms.MenuItem mnuExit;<br />
		private System.Windows.Forms.MenuItem mnuOptions;<br />
		private System.Windows.Forms.MenuItem mnuSlideShow;<br />
		private System.Data.SqlClient.SqlConnection sqlConn;<br />
		<br />
		private System.Windows.Forms.OpenFileDialog FileOpenDlg;<br />
		private System.Windows.Forms.MenuItem mnuAddPhoto;<br />
		private System.Windows.Forms.MenuItem mnuRenameAlbum;<br />
		private System.Windows.Forms.MenuItem mnuDeleteAlbum;<br />
		private System.Windows.Forms.ContextMenu mnuPhotoPopup;<br />
		private System.Windows.Forms.MenuItem mnuRenamePhoto;<br />
		private System.Windows.Forms.MenuItem mnuDeletePhoto;<br />
		private System.Windows.Forms.ContextMenu mnuAlbumPopup;<br />
		private System.Windows.Forms.MenuItem mnuNewAlbum;<br />
		private System.Windows.Forms.TextBox txtDesc;<br />
		private System.Windows.Forms.Button btnUpdate;<br />
		private System.Windows.Forms.Label lblDesc;<br />
		private System.Windows.Forms.MenuItem mnuEditDesc;<br />
		private System.Windows.Forms.MenuItem mnuAlbumEdit;<br />
		private System.Windows.Forms.MenuItem mnuPhotoEdit;<br />
		private System.Windows.Forms.ContextMenu mnuImage;<br />
		private System.Windows.Forms.MenuItem menuItem1;<br />
		private System.Windows.Forms.MenuItem menuItem2;<br />
<br />
		/// <summary><br />
		/// Required designer variable.<br />
		/// </summary><br />
		private System.ComponentModel.Container components = null;<br />
<br />
		/// <summary><br />
		/// The main entry point for the application.<br />
		/// </summary><br />
		[STAThread]<br />
		static void Main() <br />
		{<br />
			Application.Run(new MainForm());<br />
		}<br />
<br />
<br />
		public MainForm()<br />
		{<br />
			//<br />
			// Required for Windows Form Designer support<br />
			//<br />
			InitializeComponent();<br />
			<br />
			// Initaliaze the tree control<br />
			LoadTree();<br />
		}<br />
<br />
<br />
		/// <summary><br />
		/// Clean up any resources being used.<br />
		/// </summary><br />
		protected override void Dispose( bool disposing )<br />
		{<br />
			if( disposing )<br />
			{<br />
				if (components != null) <br />
				{<br />
					components.Dispose();<br />
				}<br />
			}<br />
			base.Dispose( disposing );<br />
		}<br />
<br />
<br />
		private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e)<br />
		{<br />
			// Close connection before we leave<br />
			if(sqlConn.State == ConnectionState.Open)<br />
				sqlConn.Close();<br />
		}<br />
<br />
<br />
		/// <summary><br />
		/// This method queries the database to obtain all album and photos<br />
		/// then inserts the records into the tree  control<br />
		/// </summary><br />
		private void LoadTree()<br />
		{<br />
			try<br />
			{<br />
				// Start with clear tree<br />
				treeAlbum.Nodes.Clear();<br />
<br />
				// If the connection is closed, open it.<br />
				if(sqlConn.State == ConnectionState.Closed)<br />
					sqlConn.Open();<br />
<br />
				// Just to be sure make sure it was opened <br />
				if(sqlConn.State == ConnectionState.Open)<br />
				{<br />
					// Create the stored proc command to retrieve the records<br />
					SqlCommand sqlCmd = new SqlCommand("sp_GetPhotoAlbums", sqlConn);<br />
					sqlCmd.CommandType = CommandType.StoredProcedure;<br />
<br />
					// Now execute the command<br />
					SqlDataReader sqlPhotoAlbum = sqlCmd.ExecuteReader();<br />
					<br />
					int nAlbumID = 0;		// Keep track of the current album<br />
					int nAlbumIndex = -1;	// Keep track of the tree index<br />
<br />
					// Keep reading all the records returned<br />
					while( sqlPhotoAlbum.Read() )<br />
					{<br />
						// Check if a new album needs to be added to the tree<br />
						if( nAlbumID != (int)sqlPhotoAlbum["AlbumID"] )<br />
						{<br />
							// Insert a new album<br />
							InsertAlbum(sqlPhotoAlbum["Album"].ToString(), (int)sqlPhotoAlbum["AlbumID"], sqlPhotoAlbum["Album_Desc"].ToString());<br />
							nAlbumID = (int)sqlPhotoAlbum["AlbumID"];<br />
							nAlbumIndex++;<br />
						}<br />
						// Insert the photo in the tree under the current album<br />
						InsertPhoto(nAlbumIndex, sqlPhotoAlbum["Photo"].ToString(), (int)sqlPhotoAlbum["PhotoID"], sqlPhotoAlbum["Photo_Desc"].ToString());<br />
					}<br />
					// We are finished with this for now so close it<br />
					sqlPhotoAlbum.Close();<br />
				}<br />
			}<br />
			catch(SqlException e)<br />
			{<br />
				MessageBox.Show(e.Message);<br />
			}<br />
		}<br />
<br />
<br />
		/// <summary><br />
		/// This method will inset an album into the tree<br />
		/// </summary><br />
		/// <param name="strName">Album name</param><br />
		/// <param name="nAlbum">DB index of album</param><br />
		/// <param name="strDesc">Description of album</param><br />
		private void InsertAlbum(string strName, int nAlbum, string strDesc)<br />
		{<br />
			try<br />
			{<br />
				// Create a new treenode<br />
				TreeNode node = new TreeNode(strName);<br />
				// Create new treeitem to store the info about this album<br />
				node.Tag = new TreeItem(ItemType.Album, nAlbum, strDesc);<br />
 <br />
				// Add the node into the tree<br />
				treeAlbum.Nodes.Add(node);	<br />
			}<br />
			catch(Exception e)<br />
			{<br />
				MessageBox.Show(e.Message);<br />
			}<br />
		}<br />
		<br />
<br />
		/// <summary><br />
		/// This method will insert a photo into the tree under the specified album<br />
		/// </summary><br />
		/// <param name="nAlbum">Tree index of album</param><br />
		/// <param name="strName">Name of photo</param><br />
		/// <param name="nPhoto">DB index of photo</param><br />
		/// <param name="strDesc">Description of photo</param><br />
		private void InsertPhoto(int nAlbum, string strName, int nPhoto, string strDesc)<br />
		{<br />
			try<br />
			{<br />
				// Create a new treenode<br />
				TreeNode node = new TreeNode(strName);<br />
				// Create new treeitem to store the info about this photo<br />
				node.Tag = new TreeItem(ItemType.Photo, nPhoto, strDesc);;<br />
				<br />
				// Add the node to the tree under the specified album<br />
				treeAlbum.Nodes[nAlbum].Nodes.Add(node);<br />
			}<br />
			catch(Exception e)<br />
			{<br />
				MessageBox.Show(e.Message);<br />
			}<br />
		}<br />
<br />
<br />
		/// <summary><br />
		/// This method will insert a phot into the database under the<br />
		/// designated album<br />
		/// </summary><br />
		/// <param name="buffer">The images bytes</param><br />
		/// <param name="strName">Name of the photo</param><br />
		/// <param name="nAlbum">DB index of album</param><br />
		private void InsertImage(ref byte[] buffer, string strName, int nAlbum)<br />
		{<br />
			try<br />
			{<br />
				// Create a stored procedure command<br />
				SqlCommand cmd = new SqlCommand("sp_InsertPhoto", sqlConn);<br />
				cmd.CommandType = CommandType.StoredProcedure;<br />
<br />
				// Add the return value parameter<br />
				SqlParameter param = cmd.Parameters.Add("RETURN_VALUE", SqlDbType.Int);<br />
				param.Direction = ParameterDirection.ReturnValue;<br />
				<br />
				// Add the name paramter and set the value<br />
				cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = strName;<br />
				// Add the image paramter and set the value<br />
				cmd.Parameters.Add("@image", SqlDbType.Image).Value = buffer;<br />
				// Add the album paramter and set the value<br />
				cmd.Parameters.Add("@album", SqlDbType.Int).Value = nAlbum;<br />
<br />
				// Execute the insert<br />
				cmd.ExecuteNonQuery();<br />
				<br />
				// Return value will be the index of the newly added photo<br />
				int nID = (int)cmd.Parameters["RETURN_VALUE"].Value;<br />
				<br />
				// Create a new node<br />
				TreeNode node = new TreeNode(strName);<br />
				// Create new treeitem to store the info about this photo<br />
				node.Tag = new TreeItem(ItemType.Photo, nID, "Enter description");;<br />
				<br />
				// Get the index of the album we are adding to<br />
				// and insert the new photo node<br />
				nID = treeAlbum.SelectedNode.Index;<br />
				treeAlbum.Nodes[nID].Nodes.Add(node);<br />
			}<br />
			catch(Exception e)<br />
			{<br />
				MessageBox.Show(e.Message);<br />
			}<br />
		}<br />
<br />
<br />
		#region Main menu handlers<br />
<br />
		/// <summary><br />
		/// Exit menu handler<br />
		/// </summary><br />
		private void OnExit(object sender, System.EventArgs e)<br />
		{<br />
			Close();<br />
		}<br />
<br />
<br />
		/// <summary><br />
		/// New album menu handler<br />
		/// </summary><br />
		private void OnNewAlbum(object sender, System.EventArgs e)<br />
		{<br />
			try<br />
			{<br />
				// Create a stored procedure command<br />
				SqlCommand cmd = new SqlCommand("sp_NewAlbum", sqlConn);<br />
				cmd.CommandType = CommandType.StoredProcedure;<br />
<br />
				// Add the return value parameter<br />
				SqlParameter param = cmd.Parameters.Add("RETURN_VALUE", SqlDbType.Int);<br />
				param.Direction = ParameterDirection.ReturnValue;<br />
				<br />
				// Add the name parameter and set the value<br />
				cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = "New Album";<br />
				<br />
				// Execute the command<br />
				cmd.ExecuteNonQuery();<br />
				<br />
				// The return value is the index of the newly added album<br />
				int nID = (int)cmd.Parameters["RETURN_VALUE"].Value;<br />
<br />
				// Create a new tree node and add it to the treeview<br />
				TreeNode node = new TreeNode("New Album");<br />
				node.Tag = new TreeItem(ItemType.Album, nID, "Enter description"); <br />
				treeAlbum.Nodes.Add(node);	<br />
			}<br />
			catch(Exception ex)<br />
			{<br />
				MessageBox.Show(ex.Message);<br />
			}		<br />
		}<br />
	<br />
		#endregion<br />
<br />
		#region Treeview handlers<br />
<br />
		/// <summary><br />
		/// Tree control mouse up handler<br />
		/// </summary><br />
		private void OnMouseUp(object sender, System.Windows.Forms.MouseEventArgs e)<br />
		{<br />
			// We are only interested in right mouse clicks<br />
			if( e.Button == MouseButtons.Right )<br />
			{<br />
				// Attempt to get the node the mouse clicked on<br />
				TreeNode node = treeAlbum.GetNodeAt(e.X, e.Y);<br />
				if(node != null)<br />
				{	<br />
					// Select the tree item<br />
					treeAlbum.SelectedNode = node;<br />
<br />
					TreeItem item = (TreeItem)node.Tag;<br />
					// Check what type of node was clicked and display the <br />
					// context menu for that type<br />
					if( ItemType.Album == item.Type )<br />
						mnuAlbumPopup.Show(treeAlbum, new Point(e.X, e.Y));	<br />
					else if( ItemType.Photo == item.Type )<br />
						mnuPhotoPopup.Show(treeAlbum, new Point(e.X, e.Y));	<br />
				}<br />
			}<br />
		}<br />
		<br />
<br />
		/// <summary><br />
		/// Tree control select handler<br />
		/// </summary><br />
		private void OnAfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)<br />
		{<br />
			try<br />
			{<br />
				// Disable edit controls if we were in edit mode<br />
				if( true == btnUpdate.Visible )<br />
				{<br />
					btnUpdate.Visible = false;<br />
					txtDesc.Visible = false;<br />
					lblDesc.Visible = true;<br />
				}<br />
<br />
				// Retrieve the item info for this node<br />
				TreeItem item = (TreeItem)e.Node.Tag;<br />
					<br />
				// If the selected item is an album...<br />
				if( ItemType.Album == item.Type )<br />
				{<br />
					lblDesc.Text = item.Desc; // Set the description<br />
					pictureBox.Image = null;  // Clear the image<br />
					return;<br />
				}<br />
<br />
				// ...otherwise it is a photo<br />
				ShowPhoto(item);<br />
			}<br />
			catch(Exception ex)<br />
			{<br />
				MessageBox.Show(ex.Message);<br />
			}<br />
		}<br />
<br />
		/// <summary><br />
		/// Treeview label edit handler<br />
		/// </summary><br />
		private void OnAfterLabelEdit(object sender, System.Windows.Forms.NodeLabelEditEventArgs e)<br />
		{<br />
			try<br />
			{<br />
				// Retrieve item from the selected node<br />
				TreeItem item = (TreeItem)treeAlbum.SelectedNode.Tag;<br />
<br />
				// Check what type has been edited and create a command string to update name<br />
				string strCmd;<br />
				if( ItemType.Album == item.Type )<br />
					strCmd = String.Format("UPDATE Albums SET name = '{0}' WHERE id = {1}", e.Label, item.Id);<br />
				else<br />
					strCmd = String.Format("UPDATE Photos SET name = '{0}' WHERE id = {1}", e.Label, item.Id);<br />
				<br />
				// Create a SqlCommand and execute it<br />
				SqlCommand cmd = new SqlCommand(strCmd, sqlConn);<br />
				cmd.ExecuteNonQuery();<br />
			}<br />
			catch(Exception ex)<br />
			{<br />
				MessageBox.Show(ex.Message);<br />
			}		<br />
		}<br />
<br />
<br />
		/// <summary><br />
		/// Treeview key up handler<br />
		/// </summary><br />
		private void OnKeyUp(object sender, System.Windows.Forms.KeyEventArgs e)<br />
		{<br />
			// Handle the usual rename key<br />
			if( Keys.F2 == e.KeyCode )<br />
				treeAlbum.SelectedNode.BeginEdit();<br />
		}<br />
<br />
		#endregion<br />
<br />
		#region Context menu handlers<br />
		/// <summary><br />
		/// Album rename menu handler<br />
		/// </summary><br />
		private void OnRename(object sender, System.EventArgs e)<br />
		{<br />
			// Not much to do, just let the node handle itself<br />
			treeAlbum.SelectedNode.BeginEdit();<br />
		}<br />
<br />
<br />
		/// <summary><br />
		/// Add Photo menu item handler<br />
		/// </summary><br />
		private void OnAddPhoto(object sender, System.EventArgs e)<br />
		{<br />
			// Show the file open dialog<br />
			if( DialogResult.OK == FileOpenDlg.ShowDialog() )<br />
			{<br />
				// Retrieve the treeitem for the selected parent node<br />
				TreeItem item = (TreeItem)treeAlbum.SelectedNode.Tag;<br />
				<br />
				// We allow multiple selections so loop through each one<br />
				foreach( string file in FileOpenDlg.FileNames )<br />
				{<br />
					// Create a new stream to load this photo into<br />
					System.IO.FileStream stream = new System.IO.FileStream(file, System.IO.FileMode.Open, System.IO.FileAccess.Read);<br />
					// Create a buffer to hold the stream bytes<br />
					byte[] buffer = new byte[stream.Length];<br />
					// Read the bytes from this stream<br />
					stream.Read(buffer, 0, (int)stream.Length);<br />
					// Now we can close the stream<br />
					stream.Close();<br />
<br />
					// Extract out the name of the file an use it for the name<br />
					// of the photo<br />
					string strName = System.IO.Path.GetFileNameWithoutExtension(file);<br />
<br />
					// Insert the image into the database and add it to the tree<br />
					InsertImage(ref buffer, strName, item.Id);<br />
					buffer = null;<br />
				}<br />
				// Select the last child node under this album<br />
				treeAlbum.SelectedNode = treeAlbum.SelectedNode.LastNode;<br />
			}<br />
		}<br />
<br />
		/// <summary><br />
		/// Delete menu handler<br />
		/// </summary><br />
		private void OnDelete(object sender, System.EventArgs e)<br />
		{<br />
			try<br />
			{<br />
				// Retrieve the item from the selected node<br />
				TreeItem item = (TreeItem)treeAlbum.SelectedNode.Tag;<br />
				<br />
				// Get the index of the selected node<br />
				int nIndex = treeAlbum.SelectedNode.Index;<br />
<br />
				// Check the type of node selected and create a command sting<br />
				string strCmd;<br />
				if( ItemType.Album == item.Type )<br />
					strCmd = String.Format("DELETE FROM Albums WHERE id = {0}", item.Id);<br />
				else<br />
					strCmd = String.Format("DELETE FROM Photos WHERE id = {0}", item.Id);<br />
				<br />
				// Create and execute a command<br />
				SqlCommand cmd = new SqlCommand(strCmd, sqlConn);<br />
				cmd.ExecuteNonQuery();<br />
				<br />
				// Check the type of item that was deleted<br />
				TreeNode node = null;<br />
				switch(item.Type)<br />
				{<br />
					case ItemType.Photo:<br />
						// Get the next node or the previous node if there is none<br />
						node = treeAlbum.SelectedNode.NextNode;<br />
						if( null == node )<br />
							node = treeAlbum.SelectedNode.PrevNode;<br />
					<br />
						// Check if there was a previous node<br />
						// if not we need to get the parent<br />
						if( null == node )<br />
							node = treeAlbum.SelectedNode.Parent;<br />
<br />
						// Remove the selected node from the tree<br />
						treeAlbum.Nodes[treeAlbum.SelectedNode.Parent.Index].Nodes.RemoveAt(nIndex);<br />
						break;<br />
<br />
					case ItemType.Album:<br />
						node = treeAlbum.SelectedNode.NextNode;<br />
						if( null == node )<br />
							node = treeAlbum.SelectedNode.PrevNode;<br />
						<br />
						// This was an ablum node so remove any photos displayed<br />
						pictureBox.Image = null;<br />
<br />
						// Remove the selected node from the tree<br />
						treeAlbum.Nodes.RemoveAt(nIndex);<br />
						break;<br />
				}<br />
<br />
				// Now select the node<br />
				if( null != node )<br />
					treeAlbum.SelectedNode = node;<br />
			}<br />
			catch(Exception ex)<br />
			{<br />
				MessageBox.Show(ex.Message);<br />
			}		<br />
		}<br />
		<br />
<br />
		/// <summary><br />
		/// Edit menu handler<br />
		/// </summary><br />
		private void OnEditDesc(object sender, System.EventArgs e)<br />
		{<br />
			// Toggle the edit controls<br />
			btnUpdate.Visible = true;<br />
			txtDesc.Visible = true;<br />
			lblDesc.Visible = false;<br />
<br />
			// Update the edit text box<br />
			txtDesc.Text = lblDesc.Text;<br />
		}<br />
<br />
		#endregion<br />
<br />
		private void ShowPhoto(TreeItem item)<br />
		{<br />
			try<br />
			{<br />
				// Create a command to select the selected photo<br />
				string strCmd = String.Format("SELECT photo FROM Photos WHERE id = {0}", item.Id);<br />
				SqlCommand cmd = new SqlCommand(strCmd, sqlConn);<br />
								<br />
				// Set the description<br />
				lblDesc.Text = item.Desc;<br />
<br />
				// Get bytes return from stored proc<br />
				byte[] b = (byte[])cmd.ExecuteScalar();<br />
				if(b.Length > 0)<br />
				{<br />
					// Open a stream for the image and write the bytes into it<br />
					System.IO.MemoryStream stream = new System.IO.MemoryStream(b, true);<br />
					stream.Write(b, 0, b.Length);<br />
					<br />
					// Draw photo to scale of picturebox<br />
					DrawToScale(new Bitmap(stream));<br />
				<br />
					// Close the stream and delete the temp file<br />
					stream.Close();<br />
				}<br />
			}<br />
			catch(Exception e)<br />
			{<br />
				MessageBox.Show(e.Message);<br />
			}<br />
		}<br />
<br />
		/// <summary><br />
		/// Update button handler<br />
		/// </summary><br />
		private void OnUpdate(object sender, System.EventArgs e)<br />
		{<br />
			try<br />
			{<br />
				// Retreive the item from the selected node<br />
				TreeItem item = (TreeItem)treeAlbum.SelectedNode.Tag;<br />
<br />
				// Check the type and create an command string<br />
				string strCmd;<br />
				if( ItemType.Album == item.Type )<br />
					strCmd = String.Format("UPDATE Albums SET [desc] = '{0}' WHERE id = {1}", txtDesc.Text, item.Id);<br />
				else<br />
					strCmd = String.Format("UPDATE Photos SET [desc] = '{0}' WHERE id = {1}", txtDesc.Text, item.Id);<br />
				<br />
				// Create a command and execute the update<br />
				SqlCommand cmd = new SqlCommand(strCmd, sqlConn);<br />
				cmd.ExecuteNonQuery();<br />
				<br />
				// Update the node item<br />
				item.Desc = txtDesc.Text;<br />
<br />
				// Update the text label<br />
				lblDesc.Text = txtDesc.Text;<br />
<br />
				// Toggle the edit controls<br />
				btnUpdate.Visible = false;<br />
				txtDesc.Visible = false;<br />
				lblDesc.Visible = true;<br />
			}<br />
			catch(Exception ex)<br />
			{<br />
				MessageBox.Show(ex.Message);<br />
			}		<br />
		}<br />
<br />
		/// <summary><br />
		/// This function will determine the scale the image should be rendered<br />
		/// at from the size of the picture box and image<br />
		/// </summary><br />
		/// <param name="bmp">Image to scale and assign to picture box</param><br />
		private void DrawToScale(Image bmp)<br />
		{<br />
			// The client rectangle<br />
			Rectangle rc = pictureBox.ClientRectangle;<br />
<br />
			// From Programming Windows with C#, by Charles Petzold<br />
			// Figure out the scaling necessary for the image<br />
			SizeF size = new SizeF( bmp.Width / bmp.HorizontalResolution, bmp.Height / bmp.VerticalResolution);<br />
			float fScale = Math.Min( rc.Width / size.Width, rc.Height / size.Height);<br />
<br />
			size.Width *= fScale;<br />
			size.Height *= fScale;<br />
<br />
			// Create a new bitmap of the proper size for the existing bitmap<br />
			// and assign it to the picture box<br />
			pictureBox.Image = new Bitmap(bmp, size.ToSize());<br />
		}<br />
<br />
		#region Windows Form Designer generated code<br />
		/// <summary><br />
		/// Required method for Designer support - do not modify<br />
		/// the contents of this method with the code editor.<br />
		/// </summary><br />
		private void InitializeComponent()<br />
		{<br />
			this.treeAlbum = new System.Windows.Forms.TreeView();<br />
			this.mnuAlbumPopup = new System.Windows.Forms.ContextMenu();<br />
			this.mnuAddPhoto = new System.Windows.Forms.MenuItem();<br />
			this.mnuAlbumEdit = new System.Windows.Forms.MenuItem();<br />
			this.mnuRenameAlbum = new System.Windows.Forms.MenuItem();<br />
			this.mnuDeleteAlbum = new System.Windows.Forms.MenuItem();<br />
			this.pictureBox = new System.Windows.Forms.PictureBox();<br />
			this.mnuImage = new System.Windows.Forms.ContextMenu();<br />
			this.menuItem1 = new System.Windows.Forms.MenuItem();<br />
			this.menuItem2 = new System.Windows.Forms.MenuItem();<br />
			this.mainMenu = new System.Windows.Forms.MainMenu();<br />
			this.mnuFile = new System.Windows.Forms.MenuItem();<br />
			this.mnuOpen = new System.Windows.Forms.MenuItem();<br />
			this.mnuNewAlbum = new System.Windows.Forms.MenuItem();<br />
			this.menuItem3 = new System.Windows.Forms.MenuItem();<br />
			this.mnuExit = new System.Windows.Forms.MenuItem();<br />
			this.mnuOptions = new System.Windows.Forms.MenuItem();<br />
			this.mnuSlideShow = new System.Windows.Forms.MenuItem();<br />
			this.mnuEditDesc = new System.Windows.Forms.MenuItem();<br />
			this.sqlConn = new System.Data.SqlClient.SqlConnection();<br />
			this.FileOpenDlg = new System.Windows.Forms.OpenFileDialog();<br />
			this.mnuPhotoPopup = new System.Windows.Forms.ContextMenu();<br />
			this.mnuRenamePhoto = new System.Windows.Forms.MenuItem();<br />
			this.mnuPhotoEdit = new System.Windows.Forms.MenuItem();<br />
			this.mnuDeletePhoto = new System.Windows.Forms.MenuItem();<br />
			this.txtDesc = new System.Windows.Forms.TextBox();<br />
			this.btnUpdate = new System.Windows.Forms.Button();<br />
			this.lblDesc = new System.Windows.Forms.Label();<br />
			this.SuspendLayout();<br />
			// <br />
			// treeAlbum<br />
			// <br />
			this.treeAlbum.ImageIndex = -1;<br />
			this.treeAlbum.LabelEdit = true;<br />
			this.treeAlbum.Name = "treeAlbum";<br />
			this.treeAlbum.SelectedImageIndex = -1;<br />
			this.treeAlbum.Size = new System.Drawing.Size(224, 504);<br />
			this.treeAlbum.TabIndex = 0;<br />
			this.treeAlbum.MouseUp += new System.Windows.Forms.MouseEventHandler(this.OnMouseUp);<br />
			this.treeAlbum.KeyUp += new System.Windows.Forms.KeyEventHandler(this.OnKeyUp);<br />
			this.treeAlbum.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.OnAfterSelect);<br />
			this.treeAlbum.AfterLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.OnAfterLabelEdit);<br />
			// <br />
			// mnuAlbumPopup<br />
			// <br />
			this.mnuAlbumPopup.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {<br />
																						  this.mnuAddPhoto,<br />
																						  this.mnuAlbumEdit,<br />
																						  this.mnuRenameAlbum,<br />
																						  this.mnuDeleteAlbum});<br />
			// <br />
			// mnuAddPhoto<br />
			// <br />
			this.mnuAddPhoto.Index = 0;<br />
			this.mnuAddPhoto.Text = "Add Photo";<br />
			this.mnuAddPhoto.Click += new System.EventHandler(this.OnAddPhoto);<br />
			// <br />
			// mnuAlbumEdit<br />
			// <br />
			this.mnuAlbumEdit.Index = 1;<br />
			this.mnuAlbumEdit.Text = "Edit Description";<br />
			this.mnuAlbumEdit.Click += new System.EventHandler(this.OnEditDesc);<br />
			// <br />
			// mnuRenameAlbum<br />
			// <br />
			this.mnuRenameAlbum.Index = 2;<br />
			this.mnuRenameAlbum.Text = "Rename";<br />
			this.mnuRenameAlbum.Click += new System.EventHandler(this.OnRename);<br />
			// <br />
			// mnuDeleteAlbum<br />
			// <br />
			this.mnuDeleteAlbum.Index = 3;<br />
			this.mnuDeleteAlbum.Text = "Delete";<br />
			this.mnuDeleteAlbum.Click += new System.EventHandler(this.OnDelete);<br />
			// <br />
			// pictureBox<br />
			// <br />
			this.pictureBox.ContextMenu = this.mnuImage;<br />
			this.pictureBox.Location = new System.Drawing.Point(232, 0);<br />
			this.pictureBox.Name = "pictureBox";<br />
			this.pictureBox.Size = new System.Drawing.Size(500, 300);<br />
			this.pictureBox.TabIndex = 1;<br />
			this.pictureBox.TabStop = false;<br />
			// <br />
			// mnuImage<br />
			// <br />
			this.mnuImage.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {<br />
																					 this.menuItem1,<br />
																					 this.menuItem2});<br />
			// <br />
			// menuItem1<br />
			// <br />
			this.menuItem1.Index = 0;<br />
			this.menuItem1.Text = "Rotate Left 90";<br />
			this.menuItem1.Click += new System.EventHandler(this.OnRotateLeft);<br />
			// <br />
			// menuItem2<br />
			// <br />
			this.menuItem2.Index = 1;<br />
			this.menuItem2.Text = "Rotate Right 90";<br />
			this.menuItem2.Click += new System.EventHandler(this.OnRotateRight);<br />
			// <br />
			// mainMenu<br />
			// <br />
			this.mainMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {<br />
																					 this.mnuFile,<br />
																					 this.mnuOptions});<br />
			// <br />
			// mnuFile<br />
			// <br />
			this.mnuFile.Index = 0;<br />
			this.mnuFile.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {<br />
																					this.mnuOpen,<br />
																					this.mnuNewAlbum,<br />
																					this.menuItem3,<br />
																					this.mnuExit});<br />
			this.mnuFile.Text = "File";<br />
			// <br />
			// mnuOpen<br />
			// <br />
			this.mnuOpen.Index = 0;<br />
			this.mnuOpen.Text = "Open";<br />
			// <br />
			// mnuNewAlbum<br />
			// <br />
			this.mnuNewAlbum.Index = 1;<br />
			this.mnuNewAlbum.Text = "New Album";<br />
			this.mnuNewAlbum.Click += new System.EventHandler(this.OnNewAlbum);<br />
			// <br />
			// menuItem3<br />
			// <br />
			this.menuItem3.Index = 2;<br />
			this.menuItem3.Text = "-";<br />
			// <br />
			// mnuExit<br />
			// <br />
			this.mnuExit.Index = 3;<br />
			this.mnuExit.Text = "E&xit";<br />
			this.mnuExit.Click += new System.EventHandler(this.OnExit);<br />
			// <br />
			// mnuOptions<br />
			// <br />
			this.mnuOptions.Index = 1;<br />
			this.mnuOptions.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {<br />
																					   this.mnuSlideShow,<br />
																					   this.mnuEditDesc});<br />
			this.mnuOptions.Text = "Options";<br />
			// <br />
			// mnuSlideShow<br />
			// <br />
			this.mnuSlideShow.Index = 0;<br />
			this.mnuSlideShow.Text = "Slide Show";<br />
			// <br />
			// mnuEditDesc<br />
			// <br />
			this.mnuEditDesc.Index = 1;<br />
			this.mnuEditDesc.Text = "Edit Description";<br />
			this.mnuEditDesc.Click += new System.EventHandler(this.OnEditDesc);<br />
			// <br />
			// sqlConn<br />
			// <br />
			this.sqlConn.ConnectionString = "data source=HOMESVR;initial catalog=Photos;integrated security=SSPI;persist secur" +<br />
				"ity info=False;workstation id=DAD;packet size=4096";<br />
			// <br />
			// FileOpenDlg<br />
			// <br />
			this.FileOpenDlg.Filter = "Gif files|*.gif|Jpeg Files|*.jpg;*.jpeg|Bmp Files|*.bmp";<br />
			this.FileOpenDlg.Multiselect = true;<br />
			this.FileOpenDlg.Title = "Select Photos";<br />
			// <br />
			// mnuPhotoPopup<br />
			// <br />
			this.mnuPhotoPopup.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {<br />
																						  this.mnuRenamePhoto,<br />
																						  this.mnuPhotoEdit,<br />
																						  this.mnuDeletePhoto});<br />
			// <br />
			// mnuRenamePhoto<br />
			// <br />
			this.mnuRenamePhoto.Index = 0;<br />
			this.mnuRenamePhoto.Text = "Rename";<br />
			this.mnuRenamePhoto.Click += new System.EventHandler(this.OnRename);<br />
			// <br />
			// mnuPhotoEdit<br />
			// <br />
			this.mnuPhotoEdit.Index = 1;<br />
			this.mnuPhotoEdit.Text = "Edit Description";<br />
			this.mnuPhotoEdit.Click += new System.EventHandler(this.OnEditDesc);<br />
			// <br />
			// mnuDeletePhoto<br />
			// <br />
			this.mnuDeletePhoto.Index = 2;<br />
			this.mnuDeletePhoto.Text = "Delete";<br />
			this.mnuDeletePhoto.Click += new System.EventHandler(this.OnDelete);<br />
			// <br />
			// txtDesc<br />
			// <br />
			this.txtDesc.Location = new System.Drawing.Point(232, 312);<br />
			this.txtDesc.MaxLength = 200;<br />
			this.txtDesc.Multiline = true;<br />
			this.txtDesc.Name = "txtDesc";<br />
			this.txtDesc.Size = new System.Drawing.Size(504, 112);<br />
			this.txtDesc.TabIndex = 2;<br />
			this.txtDesc.Text = "";<br />
			this.txtDesc.Visible = false;<br />
			// <br />
			// btnUpdate<br />
			// <br />
			this.btnUpdate.Location = new System.Drawing.Point(656, 432);<br />
			this.btnUpdate.Name = "btnUpdate";<br />
			this.btnUpdate.TabIndex = 3;<br />
			this.btnUpdate.Text = "Update";<br />
			this.btnUpdate.Visible = false;<br />
			this.btnUpdate.Click += new System.EventHandler(this.OnUpdate);<br />
			// <br />
			// lblDesc<br />
			// <br />
			this.lblDesc.Location = new System.Drawing.Point(232, 312);<br />
			this.lblDesc.Name = "lblDesc";<br />
			this.lblDesc.Size = new System.Drawing.Size(504, 112);<br />
			this.lblDesc.TabIndex = 4;<br />
			// <br />
			// MainForm<br />
			// <br />
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);<br />
			this.ClientSize = new System.Drawing.Size(792, 566);<br />
			this.Controls.AddRange(new System.Windows.Forms.Control[] {<br />
																		  this.lblDesc,<br />
																		  this.btnUpdate,<br />
																		  this.txtDesc,<br />
																		  this.pictureBox,<br />
																		  this.treeAlbum});<br />
			this.Menu = this.mainMenu;<br />
			this.Name = "MainForm";<br />
			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;<br />
			this.Text = "Album Viewer";<br />
			this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing);<br />
			this.ResumeLayout(false);<br />
<br />
		}<br />
		#endregion<br />
<br />
		#region PictureBox context menu handlers<br />
		/// <summary><br />
		/// Rotate left menu handler<br />
		/// </summary><br />
		private void OnRotateLeft(object sender, System.EventArgs e)<br />
		{<br />
			try<br />
			{<br />
				Image img = pictureBox.Image;<br />
				img.RotateFlip(RotateFlipType.Rotate270FlipNone);<br />
				DrawToScale(img);<br />
			}<br />
			catch(Exception ex)<br />
			{<br />
				MessageBox.Show(ex.Message);<br />
			}<br />
		}<br />
<br />
		/// <summary><br />
		/// Rotate right menu handler<br />
		/// </summary><br />
		private void OnRotateRight(object sender, System.EventArgs e)<br />
		{<br />
			try<br />
			{<br />
				Image img = pictureBox.Image;<br />
				img.RotateFlip(RotateFlipType.Rotate90FlipNone);<br />
				DrawToScale(img);<br />
			}<br />
			catch(Exception ex)<br />
			{<br />
				MessageBox.Show(ex.Message);<br />
			}<br />
		}<br />
		<br />
		#endregion<br />
	}<br />
}

AnswerRe: Form to Web Service Pin
babamara9-Apr-06 4:44
babamara9-Apr-06 4:44 
QuestionReflection Pin
rmedo9-Apr-06 4:29
rmedo9-Apr-06 4:29 
GeneralRe: Reflection Pin
Guffa9-Apr-06 5:32
Guffa9-Apr-06 5:32 
GeneralRe: Reflection Pin
rmedo10-Apr-06 22:26
rmedo10-Apr-06 22:26 
QuestionShowDialog Help Pin
rikkemus9-Apr-06 0:29
rikkemus9-Apr-06 0:29 
AnswerRe: ShowDialog Help Pin
WillemM9-Apr-06 2:45
WillemM9-Apr-06 2:45 
AnswerRe: ShowDialog Help Pin
CWIZO9-Apr-06 2:47
CWIZO9-Apr-06 2:47 
AnswerRe: ShowDialog Help Pin
Ravi Bhavnani9-Apr-06 5:16
professionalRavi Bhavnani9-Apr-06 5:16 
QuestionXml question Pin
eggie58-Apr-06 15:13
eggie58-Apr-06 15:13 
AnswerRe: Xml question Pin
Jakob Farian Krarup9-Apr-06 6:23
Jakob Farian Krarup9-Apr-06 6:23 
GeneralRe: Xml question Pin
eggie59-Apr-06 9:42
eggie59-Apr-06 9:42 
Questionhow to get errors number in sqlserver from C# Pin
superdragon8-Apr-06 14:28
superdragon8-Apr-06 14:28 
AnswerRe: how to get errors number in sqlserver from C# Pin
Sean898-Apr-06 16:03
Sean898-Apr-06 16:03 
GeneralRe: how to get errors number in sqlserver from C# Pin
superdragon9-Apr-06 18:36
superdragon9-Apr-06 18:36 
QuestionPlz Help me with these two problems !!! Pin
mrkeivan8-Apr-06 9:06
mrkeivan8-Apr-06 9:06 
AnswerRe: Plz Help me with these two problems !!! Pin
Ed.Poore8-Apr-06 9:14
Ed.Poore8-Apr-06 9:14 
GeneralRe: Plz Help me with these two problems !!! Pin
mrkeivan8-Apr-06 10:23
mrkeivan8-Apr-06 10:23 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.