private void _update_Click(object sender, EventArgs e) { List <JPEGFileItem> items = new List <JPEGFileItem>(); foreach (ListViewItem lvItem in _targets.Items) { // チェックされていないのは保存対象外 if (!lvItem.Checked) { continue; } JPEGFileItem item = lvItem.Tag as JPEGFileItem; if (null == item) { continue; } items.Add(item); } NowProcessingForm <JPEGFileItem> npf = new NowProcessingForm <JPEGFileItem>(new UpdateJpegFile(), items.ToArray()); if (DialogResult.OK == npf.ShowDialog(this)) { // 更新できなので、チェックボックスを外します。 try { _targets.BeginUpdate(); foreach (ListViewItem lvItem in _targets.Items) { // チェックされていないのは保存対象外 if (!lvItem.Checked) { continue; } lvItem.Checked = false; } } finally { _targets.EndUpdate(); } MessageBox.Show(Properties.Resources.MSG3, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void LoadDropFiles(string[] dropFiles, bool add) { try { _targets.BeginUpdate(); if (!add) { _targets.Clear(); _targets.LargeImageList.Images.Clear(); } _targets.LargeImageList.TransparentColor = TRANS_COLOR; List <string> targetFiles = new List <string>(); foreach (string filePath in dropFiles) { // すでに登録されているものを二重登録しない bool match = false; foreach (ListViewItem item in _targets.Items) { JPEGFileItem jpegItem = item.Tag as JPEGFileItem; if (null == jpegItem) { continue; } if (filePath == jpegItem.FilePath) { match = true; break; } } if (match) { continue; } targetFiles.Add(filePath); } LoadJpegFile ljf = new LoadJpegFile(_targets.LargeImageList.ImageSize, TRANS_COLOR); NowProcessingForm <string> npf = new NowProcessingForm <string>(ljf, targetFiles.ToArray()); if (DialogResult.OK == npf.ShowDialog(this)) { // 画像を読み込んだので、位置情報の確定を行う foreach (ListViewItem item in ljf.Items) { JPEGFileItem jpegItem = item.Tag as JPEGFileItem; if (null != jpegItem) { jpegItem.NewLocation = _trackItemBag.FindPoint(jpegItem.DateTimeOriginal); if (null != jpegItem.NewLocation) { item.Checked = true; if (jpegItem.NewLocation.Time != jpegItem.DateTimeOriginal.ToUniversalTime()) { item.ForeColor = Color.Pink; } else { item.ForeColor = Color.Black; } } else { item.Checked = false; if (null != jpegItem.CurrentLocation) { item.ForeColor = Color.Blue; } } item.ImageIndex = _targets.LargeImageList.Images.Count; _targets.LargeImageList.Images.Add(jpegItem.ThumNail); _targets.Items.Add(item); } } } } finally { _targets.EndUpdate(); } }