如何为OpenFile对话框中的取消按钮编码
本文关键字:取消 按钮 编码 对话框 OpenFile | 更新日期: 2023-09-27 18:27:21
每当我取消OpenFile对话框时。它给出的错误路径为空。我的OpenFile对话框
有什么方法可以为OpenFileDialog 的取消按钮和关闭按钮编码吗
我的代码:
private void button4_Click(object sender, EventArgs e)
{
string s = image_print() + Print_image();
PrintFactory.sendTextToLPT1(s); / sending to serial port
}
private string image_print()
{
OpenFileDialog ofd = new OpenFileDialog();
string path = "";
string full_path = "";
string filename_noext = "";
ofd.InitialDirectory = @"C:'ZTOOLS'FONTS";
ofd.Filter = "GRF files (*.grf)|*.grf";
ofd.FilterIndex = 2;
ofd.RestoreDirectory = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
filename_noext = System.IO.Path.GetFileName(ofd.FileName);
path = Path.GetFullPath(ofd.FileName);
img_path.Text = filename_noext;
//MessageBox.Show(filename_noext, "Filename");
// MessageBox.Show(full_path, "path");
//move file from location to debug
string replacepath = @"E:'Debug";
string fileName = System.IO.Path.GetFileName(path);
string newpath = System.IO.Path.Combine(replacepath, fileName);
if (!System.IO.File.Exists(filename_noext))
System.IO.File.Copy(path, newpath);
}
//tried using the below codes but not taking return statement. saying "An object of a type convertible to 'string' is required"
if (ofd.ShowDialog() != DialogResult.OK)
return;//---->> here its not taking return
//when ever i press the cancel or close button it is going to below line. How to stop this
StreamReader test2 = new StreamReader(img_path.Text);
string s = test2.ReadToEnd();
return s;
}
private string Print_image()
{
//some codes that returns string value in s
return s;
}
为什么不:
else
语句避免了重复的逻辑,并且返回一个空字符串,调用方法可以检查
if (ofd.ShowDialog() == DialogResult.OK)
{
filename_noext = System.IO.Path.GetFileName(ofd.FileName);
path = Path.GetFullPath(ofd.FileName);
img_path.Text = filename_noext;
// MessageBox.Show(filename_noext, "Filename");
// MessageBox.Show(full_path, "path");
// move file from location to debug
string replacepath = @"E:'Debug";
string fileName = System.IO.Path.GetFileName(path);
string newpath = System.IO.Path.Combine(replacepath, fileName);
if (!System.IO.File.Exists(filename_noext))
System.IO.File.Copy(path, newpath);
}
else
{
return String.Empty;
}
if (ofd.ShowDialog() != DialogResult.OK)
return "";
它不起作用,因为您应该返回字符串!如果你愿意,你可以返回null,也可以检查null!
在你的方法中:
private void button4_Click(object sender, EventArgs e)
{
if(image_print() == "")
{
return;
//You can write a message here to tell the user something if you want.
}
string s = image_print() + Print_image();
PrintFactory.sendTextToLPT1(s); / sending to serial port
}