C#进程。意外打开多个PDF
我有一个程序,扫描文件条形码,然后允许用户点击一个链接,打开一个与条形码相关的PDF。我的程序运行得很好,但是我在代码中遇到了一个bug(?),每隔一段时间,系统就会多次(5+)打开PDF,而且看起来不一致。我对完全重写代码犹豫不决,因为它实际上正在工作,关闭多个窗口很不方便。我认为导致问题的方法如下。任何帮助都将不胜感激,因为我不知道从哪里开始C#进程。意外打开多个PDF,c#,pdf,process,C#,Pdf,Process,我有一个程序,扫描文件条形码,然后允许用户点击一个链接,打开一个与条形码相关的PDF。我的程序运行得很好,但是我在代码中遇到了一个bug(?),每隔一段时间,系统就会多次(5+)打开PDF,而且看起来不一致。我对完全重写代码犹豫不决,因为它实际上正在工作,关闭多个窗口很不方便。我认为导致问题的方法如下。任何帮助都将不胜感激,因为我不知道从哪里开始 private void dgDisplay_CellContentClick(object sender, DataGridViewCellEv
private void dgDisplay_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
id = (int)comboBox1.SelectedValue;
string ImagePath = getImagePath(id);
string filename = "";
if (e.ColumnIndex == 1)
{
filename = dgDisplay[e.ColumnIndex, e.RowIndex].Value.ToString();
filename = @ImagePath + filename + ".tif";
if (File.Exists(filename))
{
Process.Start(filename);
}
else
{
MessageBox.Show(filename);
}
}
}
我看不出您的代码有任何明显的错误,但我会首先尝试确定事件是否被多次触发,或者Process.start调用是否实际启动了几个pdf读取器。在Process.Start调用之前使用一个简单的messagebox就可以了。您还可以设置一个变量来指示进程已启动,选中时,如果进程已驻留在内存中,则跳过启动进程。