⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dialogform.cs

📁 wince open file dialog source code
💻 CS
📖 第 1 页 / 共 3 页
字号:
                    SearchStr = "def";
                }
                else if ((e.KeyCode == System.Windows.Forms.Keys.D4))
                {
                    // 4
                    SearchStr = "ghi";
                }
                else if ((e.KeyCode == System.Windows.Forms.Keys.D5))
                {
                    // 5
                    SearchStr = "jkl";
                }
                else if ((e.KeyCode == System.Windows.Forms.Keys.D6))
                {
                    // 6
                    SearchStr = "mno";
                }
                else if ((e.KeyCode == System.Windows.Forms.Keys.D7))
                {
                    // 7
                    SearchStr = "pqrs";
                }
                else if ((e.KeyCode == System.Windows.Forms.Keys.D8))
                {
                    // 8
                    SearchStr = "tuv";
                }
                else if ((e.KeyCode == System.Windows.Forms.Keys.D9))
                {
                    // 9
                    SearchStr = "wxyz";
                }
                else if ((e.KeyCode == System.Windows.Forms.Keys.D0))
                {
                    // 0
                }
                 */
                if ((e.KeyCode == System.Windows.Forms.Keys.F8))
                {
                    // *
                    SearchStr = "Top";
                }
                else if ((e.KeyCode == System.Windows.Forms.Keys.F9))
                {
                    // #
                    SearchStr = "Bottom";
                }

                //如果有检索操作
                if (SearchStr != "" && FileListView.Items.Count > 0)
                {
                    if (SearchStr == "Top")
                    {
                        FileListView.Items[0].Selected = true;
                        FileListView.Items[0].Focused = true;

                        FileListView.EnsureVisible(0);
                    }
                    else if (SearchStr == "Bottom")
                    {
                        FileListView.Items[FileListView.Items.Count - 1].Selected = true;
                        FileListView.Items[FileListView.Items.Count - 1].Focused = true;

                        FileListView.EnsureVisible(FileListView.Items.Count - 1);
                    }
                    /*
                else //检索
                {
                    for (int i = SelectItem.Index + 1; i < FileListView.Items.Count; i++)
                    {
                        ListViewItem EachItem = FileListView.Items[i];
                        bool FoundItem = false;//是否检索到合适的内容

                        for (int j = 0; j < SearchStr.Length; j++)
                        {
                            string EachChar = SearchStr.Substring(j, 1);

                            if (EachItem.Text.ToLower().StartsWith(EachChar))
                            {
                                EachItem.Selected = true;
                                EachItem.Focused = true;

                                FileListView.EnsureVisible(EachItem.Index);

                                FoundItem = true;
                                break;
                            }
                        }

                        //检索到合适内容,退出循环
                        if (FoundItem) break;
                    }
                }
                */
                    FileListView.Focus();
                }
            }
        }

        //执行相关操作
        private void FileListView_ItemActivate(object sender, EventArgs e)
        {
            ItemFileInfo ThisInfo = (ItemFileInfo)FileInfoList[SelectItem.Index];
            if (ThisInfo.FileType == ItemType.File)
            {
                if (CheckFile(ThisInfo.FullPach))
                {
                    FileName = ThisInfo.FullPach;
                    this.DialogResult = DialogResult.Yes;
                    this.Close();
                }
            }
            else if (ThisInfo.FileType == ItemType.Directory)
            {
                ReflashList(ThisInfo.FullPach);
            }
        }

        //向上
        private void PreDirMenu_Click(object sender, EventArgs e)
        {
            ReflashList(GetPreDirectory(NowDir));
        }

        //选中Item
        private void FileListView_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (FileListView.SelectedIndices.Count > 0)
            {
                if (((ItemFileInfo)FileInfoList[SelectItem.Index]).FileType == ItemType.File)
                {
                    FileNameEnter.Text = SelectItem.Text;
                }
                else
                {
                    FileNameEnter.Text = "";
                }
            }
        }

        //删除
        private void DelMenu_Click(object sender, EventArgs e)
        {
            if (SelectItem != null)
            {
                //记录被删除的索引
                int SelectIndex = SelectItem.Index;

                ItemFileInfo TheInfo = (ItemFileInfo)FileInfoList[SelectItem.Index];
                if(TheInfo.FileType == ItemType.File)
                {
                    if (MessageBox.Show("确实要删除文件 " + TheInfo.FullPach + " 吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
                    {
                        try
                        {
                            File.Delete(TheInfo.FullPach);
                            FileListView.Items.RemoveAt(SelectItem.Index);

                            //选择下一Item
                            SelectNextItem(SelectIndex);

                            FileInfoList.RemoveAt(SelectIndex);
                        }
                        catch (Exception er)
                        {
                            ShowError(er.Message);
                        }
                    }
                }
                else if(TheInfo.FileType == ItemType.Directory)
                {
                    if (MessageBox.Show("确实要删除文件夹 " + TheInfo.FullPach + " 吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
                    {
                        try
                        {
                            Directory.Delete(TheInfo.FullPach,true);
                            FileListView.Items.RemoveAt(SelectItem.Index);

                            //选择下一Item
                            SelectNextItem(SelectIndex);

                            FileInfoList.RemoveAt(SelectIndex);
                        }
                        catch (Exception er)
                        {
                            ShowError(er.Message);
                        }
                    }
                }

                FileListView.Focus();
            }
        }

        //新建文件夹
        private void NewDirMenu_Click(object sender, EventArgs e)
        {
            InputForm NewDirForm = new InputForm();

            NewDirForm.Icon = this.Icon;
            NewDirForm.Text = ((MenuItem)sender).Text;
            NewDirForm.Info = "新建文件夹名称";
            NewDirForm.FileName = "新建的文件夹";

            try
            {

                if (NewDirForm.ShowDialog() == DialogResult.Yes)
                {
                    if (NewDirForm.FileName != "")
                    {
                        if (CheckNameIsOK(NewDirForm.FileName))
                        {
                            string NewDirName = MixToFullPath(NowDir, NewDirForm.FileName);

                            if (!Directory.Exists(NewDirName))
                            {
                                Directory.CreateDirectory(NewDirName);

                                ListViewItem NewItem = new ListViewItem(NewDirForm.FileName);
                                NewItem.ImageIndex = 0;
                                FileListView.Items.Add(NewItem);

                                ItemFileInfo newInfo = new ItemFileInfo();
                                newInfo.FileType = ItemType.Directory;
                                newInfo.FullPach = NewDirName;
                                FileInfoList.Add(newInfo);

                                
                                NewItem.Focused = true;
                                NewItem.Selected = true;

                                FileListView.Focus();
                                FileListView.EnsureVisible(NewItem.Index);
                            }
                            else
                            {
                                ShowError("文件夹 " + NewDirName + " 已经存在,无法重复建立.");
                            }
                        }
                        else
                        {
                            ShowError("新建文件夹名称包含非法字符.");
                        }
                    }
                }
            }
            catch (Exception er)
            {
                ShowError(er.Message);
            }
            finally
            {
                NewDirForm.Dispose();
                NewDirForm = null;
            }
        }

        //重命名
        private void RenMenu_Click(object sender, EventArgs e)
        {
            InputForm RenameForm = new InputForm();

            ItemFileInfo ThisInfo = (ItemFileInfo)FileInfoList[SelectItem.Index];

            string TempStr = "";
            if (ThisInfo.FileType == ItemType.Directory) TempStr = "文件夹";
            else if (ThisInfo.FileType == ItemType.File) TempStr = "文件";

            RenameForm.Icon = this.Icon;
            RenameForm.Text = ((MenuItem)sender).Text;
            RenameForm.Info = "新的" + TempStr + "名称";
            RenameForm.FileName = SelectItem.Text;

            try
            {
                if (RenameForm.ShowDialog() == DialogResult.Yes)
                {
                    if (RenameForm.FileName != "" && RenameForm.FileName != SelectItem.Text)
                    {
                        if (CheckNameIsOK(RenameForm.FileName))
                        {

                            string NewName = MixToFullPath(NowDir, RenameForm.FileName);

                            if ((ThisInfo.FileType == ItemType.File && !File.Exists(NewName)) || (ThisInfo.FileType == ItemType.Directory && !Directory.Exists(NewName)))
                            {
                                if (ThisInfo.FileType == ItemType.Directory)
                                    Directory.Move(ThisInfo.FullPach, NewName);
                                else if (ThisInfo.FileType == ItemType.File)
                                    File.Move(ThisInfo.FullPach, NewName);

                                SelectItem.Text = RenameForm.FileName;

                                ItemFileInfo NewInfo = new ItemFileInfo();
                                NewInfo.FileType = ThisInfo.FileType;
                                NewInfo.FullPach = NewName;
                                FileInfoList.RemoveAt(SelectItem.Index);
                                FileInfoList.Insert(SelectItem.Index, NewInfo);

                                FileListView.EnsureVisible(SelectItem.Index);

                                FileListView.Focus();
                            }
                            else
                            {
                                ShowError(TempStr + " " + NewName + " 已经存在,无法重命名.");
                            }
                        }
                        else
                        {
                            ShowError(TempStr + "名称包含非法字符.");
                        }
                    }
                }
            }
            catch (Exception er)
            {
                ShowError(er.Message);
            }
            finally
            {
                RenameForm.Dispose();
                RenameForm = null;
            }
        }

        //查看-详细信息
        private void DetilMenu_Click(object sender, EventArgs e)
        {
            DefaultViewType = ViewType.Detial;
            DetilMenu.Checked = true;
            ListMenu.Checked = false;

            FileListView.View = View.Details;
        }

        //查看-列表
        private void ListMenu_Click(object sender, EventArgs e)
        {
            DefaultViewType = ViewType.List;
            DetilMenu.Checked = false;
            ListMenu.Checked = true;

            FileListView.View = View.SmallIcon;
        }

        //取消
        private void CancelMenu_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
            this.Close();
        }

        //刷新
        private void ReflashMenu_Click(object sender, EventArgs e)
        {
            ReflashList(NowDir);
        }

        //关于
        private void AboutMenu_Click(object sender, EventArgs e)
        {
            AboutForm ShowAbout = new AboutForm();
            ShowAbout.Icon = this.Icon;
            ShowAbout.ShowDialog();
            ShowAbout.Dispose();
            ShowAbout = null;

            if (WindowHandle != IntPtr.Zero)
                API.SetForegroundWindow(WindowHandle);
        }

        //窗口改变大小时
        private void DialogForm_Resize(object sender, EventArgs e)
        {
            //FileNameEnter.Width = this.Width - FileNameEnter.Left - 3;
            //FileListView.Width = this.Width - FileListView.Left - 3;
            //FileListView.Height = this.Height - FileListView.Top - 3;

            //调整控件位置
            FileListView.Width = this.Width - 6;
            FileListView.Height = this.Height - FileListView.Top - 3;

            PleaseWaitInfo.Width = this.Width - 6;

            Graphics g = this.CreateGraphics();
            SizeF FileNameLabelSizeF = g.MeasureString(FileNameLabel.Text + " ", FileNameLabel.Font);
            FileNameLabel.Size = FileNameLabelSizeF.ToSize();
            FileNameEnter.Left = FileNameLabel.Right;
            FileNameEnter.Width = this.Width - FileNameEnter.Left - 3;

            SizeF FileListViewColumn1 = g.MeasureString(FileListView.Columns[1].Text + "  ", FileListView.Font);
            FileListView.Columns[1].Width = FileListViewColumn1.ToSize().Width;
            FileListView.Columns[0].Width = FileListView.Width - 10 - FileListView.Columns[1].Width;

            g.Dispose();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -