/// <summary> /// 이미지 선택창에서 사용자가 선택 및 옵션 결정을 하고 누르는 확인 버튼의 이벤트 메서드 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnComplete_Click(object sender, EventArgs e) { frmWaiting Wait = new frmWaiting(); Wait.Progress(5); Wait.Show(); TypeChanger tc = new TypeChanger(); BoardType boardType = this.Option.puzzleImage.boardType; int pieceNum = 0; int len = tc.BoardTypeLength + 2; if (boardType == BoardType.TypeAny || boardOption.ignoreBoardType) { for (int i = 3; i < len; i++) { ImgCrop(i, 600 / i); Wait.Progress(i * 10); } boardOption.puzzleImage.boardType = BoardType.Type5x5; } else { pieceNum = (int)boardType + 2; ImgCrop(pieceNum, 600 / pieceNum); Wait.Progress(80); } Wait.Progress(100); btnComplete.DialogResult = DialogResult.OK; this.Close(); Wait.Close(); }
public void CloseWaitingForm() { if (frm != null) { frm.Close(); frm.Dispose(); } }
private void initImgPanel(int selectedIndex) { string sDir = (selectedIndex == 0)? "Default" : "user"; frmWaiting Wait = new frmWaiting(); //string cDir = Environment.CurrentDirectory; string[] Files = Directory.GetFiles(@"img\" + sDir, "*.jpg", SearchOption.TopDirectoryOnly); int len = Files.Length; Panel[] ImgPanel = new Panel[len]; PictureBox[] ImgPreview = new PictureBox[len]; StreamReader sr = null; string str = ""; string[] tmp = new string[3]; int num = 0; TypeChanger tc = new TypeChanger(); Wait.Show(); //MessageBox.Show(sDir); if (sDir == "Default") { sr = new StreamReader(@"img\Default\Desc.txt", Encoding.UTF8); while (true) { num++; str += sr.ReadLine() + "\t"; if (sr.EndOfStream) { break; } } sr.Close(); Wait.Progress(10); tmp = str.Split('\t'); for (int i = 0; i < num; i++) { puzzleImage[i].boardType = tc.ExtractToBoardType(tmp[0 + 3 * i]); puzzleImage[i].image = Image.FromFile(Files[i]); puzzleImage[i].name = tmp[1 + 3 * i]; puzzleImage[i].desc = tmp[2 + 3 * i]; puzzleImage[i].file = @"img\Default\" + tmp[0 + 3 * i]; } } else { string rootDir = Environment.CurrentDirectory + @"\img\user\"; len = rootDir.Length; num = Files.Length; for (int i = 0; i < num; i++) { string[] tmpName = Files[i].Split('\\'); puzzleImage[i].boardType = BoardType.TypeAny; puzzleImage[i].image = Image.FromFile(Files[i]); puzzleImage[i].name = tmpName[tmpName.Length - 1]; puzzleImage[i].desc = "사용자 정의"; puzzleImage[i].file = @"img\user\" + puzzleImage[i].name; } } Wait.Progress(20); len = Files.Length; for (int i = 0; i < len; i++) { ImgPanel[i] = new Panel(); ImgPreview[i] = new PictureBox(); ImgPreview[i].Image = puzzleImage[i].image; ImgPreview[i].Location = new System.Drawing.Point(3, 3); ImgPreview[i].Name = "ImgPreview" + i; ImgPreview[i].Size = new System.Drawing.Size(64, 64); ImgPreview[i].SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; ImgPreview[i].TabIndex = 0; ImgPreview[i].TabStop = false; ImgPanel[i].BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; ImgPanel[i].Location = new System.Drawing.Point(3, 3 + 70 * i); ImgPanel[i].Name = "imgPanel" + i; ImgPanel[i].Size = new System.Drawing.Size(230, 70); ImgPanel[i].TabIndex = 2 + i; ImgPanel[i].Paint += new PaintEventHandler(ImgPanel_Paint); ImgPanel[i].MouseMove += new MouseEventHandler(ImgPanel_MouseMove); ImgPanel[i].MouseLeave += new EventHandler(ImgPanel_MouseLeave); ImgPanel[i].Click += new EventHandler(ImgPanel_Click); ImgPanel[i].Controls.Add(ImgPreview[i]); panel_ImgSelector.Controls.Add(ImgPanel[i]); Wait.Progress(20 + i); } Wait.Progress(100); Wait.Close(); }
public static void Open(string sMessage) { Thread t = new Thread(delegate() { frmWaiting window = new frmWaiting(sMessage); CloseWindow += () => window.Dispatcher.BeginInvoke(new ThreadStart(() => window.Close())); window.Closed += (sender2, e2) => Window.Dispatcher.InvokeShutdown(); window.Show(); System.Windows.Threading.Dispatcher.Run(); }); t.SetApartmentState(ApartmentState.STA); t.Start(); }