请问如何选择自己做的程序打开文件?

wangtong2010 2020-05-06 06:59:43
图片文件可以被多种应用程序打开,可以在图片文件上右击选择一个应用程序,在运行应用程序后同时打开文件。在选择用自己的程序打开文件时,应用程序可以被启动,但是图片没有被打开。再有,把图片文件拖放到我做的应用程序图标上,同样也是只启动程序,没有打开文件。请问应该如何编写程序实现这些功能?
...全文
201 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangtong2010 2020-05-07
  • 打赏
  • 举报
回复
引用 3 楼 贵阳老马马善福专业维修游泳池堵漏防水工程 的回复:
class Program里面找到
void Main(string[] args)
{
args[1]就是文件名。
}

你好,修改完Main()方法了,然后在windows界面里的图片文件"Color1.png"上鼠标右键选择"DrawIcon.exe"打开图片,如下图。

然后就出现错误了,如下图。

相关程序代码如下,看来还是有问题,问题是args是0维数组,还得修改代码。

namespace DrawIcon
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args) //修改Main()方法,增加参数。
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmDrawIcon(args[1])); //把args[1]传递给主窗体的构造方法。
}
}
}
牧歌ing 2020-05-07
  • 打赏
  • 举报
回复
https://www.cnblogs.com/findumars/p/5345733.html

你如果拖动文件到你的PictureBox中没有打开,是因为你的事件没设对
wangtong2010 2020-05-07
  • 打赏
  • 举报
回复
引用 6 楼 Bridge_go 的回复:

public Form1(string[] args)
{
this.AllowDrop = true;
InitializeComponent();
if (args != null && args.Length > 0)
{
Image image = new Bitmap(args[0]);
this.pictureBox1.Image = image;
}

}

private void Form1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;

}

private void Form1_DragDrop(object sender, DragEventArgs e)
{
string[] arr = (string[])e.Data.GetData(DataFormats.FileDrop);
Image image = new Bitmap(arr[0]);
this.pictureBox1.Image = image;
}

非常感谢,这正是我想要的,再次感谢。
Bridge_go 2020-05-07
  • 打赏
  • 举报
回复

public Form1(string[] args)
{
    this.AllowDrop = true;
    InitializeComponent();
    if (args != null && args.Length > 0)
    {
        Image image = new Bitmap(args[0]);
        this.pictureBox1.Image = image;
    }

}

private void Form1_DragEnter(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
        e.Effect = DragDropEffects.Copy;
    else
        e.Effect = DragDropEffects.None;

}

private void Form1_DragDrop(object sender, DragEventArgs e)
{
    string[] arr = (string[])e.Data.GetData(DataFormats.FileDrop);
    Image image = new Bitmap(arr[0]);
    this.pictureBox1.Image = image;
}
threenewbee 2020-05-06
  • 打赏
  • 举报
回复
class Program里面找到
void Main(string[] args)
{
args[1]就是文件名。
}
wangtong2010 2020-05-06
  • 打赏
  • 举报
回复
引用 1 楼 wanghui0380 的回复:
随便去注册表搜索一个文件后缀,比如.txt 观察别人写了写啥到注册表

ps:记得实现命令行参数,系统实际使用命令行参数去通知你的

去注册表看也看不懂,问题是可以运行程序,就是不能打开文件,你能否说一说如何编写代码来打开文件?
是这样的,我有一个自编的程序,界面上有一个PictureBox和一个Button,可以点击按钮选择图片文件加载在图片框上,也想能够像上述那样给图片框加载一幅图片。
wanghui0380 2020-05-06
  • 打赏
  • 举报
回复
随便去注册表搜索一个文件后缀,比如.txt 观察别人写了写啥到注册表 ps:记得实现命令行参数,系统实际使用命令行参数去通知你的

111,101

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧