22using System ;
33using System . Diagnostics ;
44using System . Drawing ;
5+ using System . IO ;
56using System . Windows . Forms ;
67
78namespace SimilarImages
@@ -20,28 +21,29 @@ private void lvw_Result_SelectedIndexChanged(object sender, EventArgs e)
2021
2122 // Show images
2223 var selectedTuple = tuples [ lvw_Result . SelectedIndices [ 0 ] ] ;
23- try
24+ if ( File . Exists ( selectedTuple . Item1 ) )
2425 {
2526 pictureBox1 . Image = new Bitmap ( selectedTuple . Item1 ) ;
2627 lb_Image1 . Text = selectedTuple . Item1 . Substring ( selectedTuple . Item1 . LastIndexOf ( '\\ ' ) + 1 ) ;
2728 lb_Image1 . Tag = selectedTuple . Item1 ;
2829 lb_Resolution1 . Text = $ "{ pictureBox1 . Image . Width } *{ pictureBox1 . Image . Height } ";
2930 }
30- catch ( ArgumentException )
31+ else
3132 {
3233 pictureBox1 . Image = null ;
3334 lb_Image1 . Text = Message . Deleted ;
3435 lb_Image1 . Tag = null ;
3536 lb_Resolution1 . Text = null ;
3637 }
37- try
38+
39+ if ( File . Exists ( selectedTuple . Item2 ) )
3840 {
3941 pictureBox2 . Image = new Bitmap ( selectedTuple . Item2 ) ;
4042 lb_Image2 . Text = selectedTuple . Item2 . Substring ( selectedTuple . Item2 . LastIndexOf ( '\\ ' ) + 1 ) ;
4143 lb_Image2 . Tag = selectedTuple . Item2 ;
4244 lb_Resolution2 . Text = $ "{ pictureBox2 . Image . Width } *{ pictureBox2 . Image . Height } ";
4345 }
44- catch ( ArgumentException )
46+ else
4547 {
4648 pictureBox2 . Image = null ;
4749 lb_Image2 . Text = Message . Deleted ;
@@ -98,17 +100,23 @@ private void btn_Open2_Click(object sender, EventArgs e)
98100
99101 private void btn_Delete1_MouseDown ( object sender , MouseEventArgs e )
100102 {
101- DeleteImage ( pictureBox1 , lb_Image1 , e . Button == MouseButtons . Right ) ;
103+ if ( DeleteImage ( pictureBox1 , lb_Image1 , e . Button == MouseButtons . Right ) )
104+ {
105+ UpdateSelectedIndex ( ) ;
106+ }
102107 }
103108
104109 private void btn_Delete2_MouseDown ( object sender , MouseEventArgs e )
105110 {
106- DeleteImage ( pictureBox2 , lb_Image2 , e . Button == MouseButtons . Right ) ;
111+ if ( DeleteImage ( pictureBox2 , lb_Image2 , e . Button == MouseButtons . Right ) )
112+ {
113+ UpdateSelectedIndex ( ) ;
114+ }
107115 }
108116
109- private void DeleteImage ( PictureBox pictureBox , Label label , bool force )
117+ private bool DeleteImage ( PictureBox pictureBox , Label label , bool force )
110118 {
111- if ( pictureBox . Image == null ) { return ; }
119+ if ( pictureBox . Image == null ) { return false ; }
112120
113121 DialogResult dr = DialogResult . Cancel ;
114122
@@ -126,7 +134,29 @@ private void DeleteImage(PictureBox pictureBox, Label label, bool force)
126134 FileSystem . DeleteFile ( label . Tag . ToString ( ) ,
127135 UIOption . OnlyErrorDialogs , RecycleOption . SendToRecycleBin ) ;
128136 label . Text = Message . Deleted ;
137+ return true ;
129138 }
139+ return false ;
140+ }
141+
142+ private void UpdateSelectedIndex ( )
143+ {
144+ // Unselect current
145+ int currentSelectedIndex = lvw_Result . SelectedIndices [ 0 ] ;
146+ lvw_Result . Items [ currentSelectedIndex ] . Selected = false ;
147+
148+ // Select new
149+ if ( currentSelectedIndex < lvw_Result . Items . Count - 1 )
150+ {
151+ lvw_Result . Items [ currentSelectedIndex + 1 ] . Selected = true ;
152+ }
153+ else
154+ {
155+ lvw_Result . Items [ 0 ] . Selected = true ;
156+ }
157+
158+ // Scroll to new
159+ lvw_Result . EnsureVisible ( lvw_Result . SelectedIndices [ 0 ] ) ;
130160 }
131161
132162 private void btn_Delete1_MouseHover ( object sender , EventArgs e )
0 commit comments