qq_42001465 2024-02-12 16:53 采纳率: 50%
浏览 18
已结题

我用c#开发的桌面应用项目无法用OpenFileDialog ofd打开文件选择窗口

我用c#开发的桌面应用项目无法用OpenFileDialog ofd打开文件选择窗口

   OpenFileDialog ofd = new OpenFileDialog();
   ofd.InitialDirectory = Application.StartupPath;
   ofd.Title = "请选择要打开的PDF文件";
   ofd.Multiselect = false;
   ofd.Filter = "PDF文件| *.pdf|所有文件 |*.* ";
   ofd.FilterIndex = 1; // 设置为1以默认显示PDF文件过滤器  
   ofd.RestoreDirectory = true;

   if (ofd.ShowDialog() == DialogResult.OK)
   {
       string selectedFile = ofd.FileName;
       // 在这里处理选定的PDF文件  
   }

代码如图
这段代码我将其放在form2窗口的按钮控件 的点击事件内(form1为启动页,显示完成后关闭并打开form2)
项目运行跳转至form2后点击按钮并未能打开文件选择窗口,请问要如何修改才能使其在form2中正常打开
然后要将选择的PDF文件在一个窗口中打开(要能编辑)

我将form2设置为默认打开窗口(不通过form1跳转form2,直接打开form2)
便可正常运行上述代码打开文件选择窗口

namespace WinFormsApp2
{
    public partial class Form1 : Form
    {
        private System.Windows.Forms.Timer timer;
        #region
        public Form1()
        {
            InitializeComponent();
            // 初始化定时器  
            timer = new System.Windows.Forms.Timer();
            timer.Interval = 6000; // 设置定时器间隔为 6000 毫秒(6 秒)  
            timer.Tick += new EventHandler(TimerTickHandler); // 绑定 Tick 事件处理器  

            // 启动定时器  
            timer.Start();
        }

        // 当定时器时间到达时触发的事件处理器  
        private void TimerTickHandler(object sender, EventArgs e)
        {
            // 停止定时器  
            timer.Stop();

            // 释放定时器资源  
            timer.Dispose();




            // 显示下一个窗口并关闭当前窗口
            Thread t1 = new Thread(delegate () { new Form2().ShowDialog(); });
            t1.Start();
            //Close();
            //关闭也可以使用
            Dispose();



        }
        #endregion

    }
}

上述为form1的代码

  • 写回答

12条回答 默认 最新

  • threenewbee 2024-02-12 22:43
    关注

    代码没有看出明显问题,可以远程帮你调试下
    你安装个 todesk,然后在我下面评论

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(11条)

报告相同问题?

问题事件

  • 系统已结题 2月22日
  • 已采纳回答 2月14日
  • 修改了问题 2月12日
  • 创建了问题 2月12日

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同