如何点击pictureBox_MouseDown 事件加载硬盘上的图片,显示到pictureBox中

hinada99 2010-12-25 03:29:30
RT
我的代码如下,"D:\\VS08code\\NET_Test\\Draw\\Blackqi.jpg"是真实存在的jpg图片。想实现的效果就是点击一下pictureBox1,pic就会在pictureBox1上显示出来
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
PictureBox pic = new PictureBox();
pic.Size = new System.Drawing.Size(50, 50);
pic.Location = new System.Drawing.Point(e.X, e.Y);
pic.ImageLocation = "D:\\VS08code\\NET_Test\\Draw\\Blackqi.jpg";
this.Controls.Add(pic);
pic.BringToFront();
}
在线等待高手解答
...全文
251 16 打赏 收藏 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovelan1748 2010-12-25
  • 打赏
  • 举报
回复

[System.Runtime.InteropServices.DllImport("user32.dll", CharSet=CharSet.Auto)]
extern static bool DestroyIcon(IntPtr handle);

private void GetHicon_Example(PaintEventArgs e)
{

// Create a Bitmap object from an image file.
Bitmap myBitmap = new Bitmap(@"c:\FakePhoto.jpg");

// Draw myBitmap to the screen.
e.Graphics.DrawImage(myBitmap, 0, 0);

// Get an Hicon for myBitmap.
IntPtr Hicon = myBitmap.GetHicon();

// Create a new icon from the handle.
Icon newIcon = Icon.FromHandle(Hicon);

// Set the form Icon attribute to the new icon.
this.Icon = newIcon;

// Destroy the Icon, since the form creates
// its own copy of the icon.
DestroyIcon(newIcon.Handle);

}

参考Bitmap.GetHicon()
hinada99 2010-12-25
  • 打赏
  • 举报
回复
提示:
参数“picture”必须是可用作 Icon 的图片。

指向:
Icon icon = new Icon("D:\\VS08code\\NET_Test\\Draw\\Draw\\Blackqi.jpg");
hinada99 2010-12-25
  • 打赏
  • 举报
回复
hinada99 2010-12-25
  • 打赏
  • 举报
回复

//仿写12楼的代码,试图将jpg存成ico
private void button1_Click(object sender, EventArgs e)
{
SaveFileDialog sf = new SaveFileDialog();
if(sf.ShowDialog()==DialogResult.OK)
{
Icon icon = new Icon("D:\\VS08code\\NET_Test\\Draw\\Draw\\Blackqi.jpg");
icon.Save(sf.OpenFile());

}


}
lovelan1748 2010-12-25
  • 打赏
  • 举报
回复

private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
using (OpenFileDialog of = new OpenFileDialog())
{
if (of.ShowDialog() == DialogResult.OK)
{
//pictureBox1.Image = Image.FromFile(of.FileName);
Icon icon = new Icon(of.FileName);
icon.Save(stream);
}
}
}
lovelan1748 2010-12-25
  • 打赏
  • 举报
回复

private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
using (OpenFileDialog of = new OpenFileDialog())
{
if (of.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = Image.FromFile(of.FileName);
}
}

}
hinada99 2010-12-25
  • 打赏
  • 举报
回复
好吧
现在的问题是 如何将 jpg存成 ico
直接改 扩展名 不行~
lovelan1748 2010-12-25
  • 打赏
  • 举报
回复

private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
using (OpenFileDialog of = new OpenFileDialog())
{
if (of.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = Image.FromFile(of.FileName);
}
}

}
CXH_ME 2010-12-25
  • 打赏
  • 举报
回复
把名字改一下,MouseDown会覆盖基类的一个同名函数
另外,不需要那么多代码,如下就行
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
pictureBox1.ImageLocation = "D:\\VS08code\\NET_Test\\Draw\\Blackqi.jpg";
pictureBox1.BringToFront();
}
hinada99 2010-12-25
  • 打赏
  • 举报
回复
Icon ic = new Icon("绝对路径");
Graphics g = Graphics.FromHwnd(this.pictureBox1.Handle);
g.DrawIcon(ic, e.X, e.Y);

这样就行了
qldsrx 2010-12-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hinada99 的回复:]
自己先顶一个
希望 wuqll快点看到我的帖子
[/Quote]
你为啥不自己去用Google之类的搜索引擎?他就是这么搜索了贴链接的,别指望过多的指导,只有链接或者复制别人的代码。

你的思维混乱,this.Controls.Add(pic);这句中,this是Form窗体,
pic.Location = new System.Drawing.Point(e.X, e.Y);中的坐标是相对pictureBox1的坐标,你不转换为相对Form的坐标,让Form怎么能正确摆放你的控件?而且这还涉及到互相覆盖的问题,你已经存在的pictureBox1上面叠加一个pictureBox2的话,谁覆盖谁还未知,显然是思维混乱。
hinada99 2010-12-25
  • 打赏
  • 举报
回复
会4#
挂在mouse_down事件上
Mouse_down的时候,e.X,e.Y位置会被 “红叉和Size(50, 50)”填充,也就是说,加载了图片,但是图片没有显示出来
我直接去路径下 打开图片,图片却能正常显示
lovelan1748 2010-12-25
  • 打赏
  • 举报
回复
逻辑乱七八糟,感觉自己机器好还是怎么的。。。
敢问你的pictureBox1_MouseDown挂在MouseDown事件上了吗
hinada99 2010-12-25
  • 打赏
  • 举报
回复
我的不行呀
图片显示不出来
xingsheng7 2010-12-25
  • 打赏
  • 举报
回复
可以啊,我试了下,可以啊
hinada99 2010-12-25
  • 打赏
  • 举报
回复
自己先顶一个
希望 wuqll快点看到我的帖子
内容概要:本文围绕【复现IEEE二区文献】基于状态空间表示与组件连接法的构网型逆变器统一小信号建模框架研究,提出了一种适用于多控制策略构网型逆变器的小信号建模方法。该方法结合状态空间建模理论与组件连接法(Component Connection Method),实现了对复杂逆变器系统动态特性的精确描述,尤其适用于分析系统在不同运行工况下的稳定性。通过Matlab代码实现,构建了包含控制环路、滤波器、锁相环等关键模块的完整小信号模型,并利用特征值分析与模态参与度评估系统稳定性,解决了传统建模方法在面对多时间尺度、强耦合非线性控制结构时建模困难、精度不足的问题。研究还探讨了关键控制参数对系统稳定边界的影响,为构网型逆变器的参数整定与优化设计提供了理论依据和技术支撑。; 适合人群:具备电力电子、自动控制理论基础,从事新能源发电、微电网、电力系统稳定性研究的研究生、科研人员及工程技术人员,尤其适合致力于高水平期刊论文复现与仿真实践的科研工作者。; 使用场景及目标:① 掌握构网型逆变器统一小信号建模的核心方法,复现IEEE二区高水平文献成果;② 理解状态空间法与组件连接法在复杂电力电子系统建模中的集成应用;③ 利用Matlab进行特征值分析与稳定性判据研究,支撑科研仿真与论文写作;④ 为多逆变器并联系统、微电网稳定性分析等课题提供建模工具与技术路线参考。; 阅读建议:建议读者结合Matlab代码与文中建模流程逐步调试,重点关注各子模块状态方程的推导与系统整体矩阵组装过程,深入理解控制参数对系统极点分布的影响规律,建议配合其他稳定性分析案例进行对比学习以加深理解。
内容概要:WiFiSupply斯普莱WFS7000XB52AX5G是一款高性能、工业级的5G全网通+双频WIFI6无线AP基站,支持5G与工业大功率Wi-Fi链路无缝切换与带宽聚合,具备高达2974Mbps的双频带宽和1000Mbps以上的实际吞吐量。设备采用MIMO 4T4R架构,支持OFDMA、AI智能FastRoaming等先进技术,实现低至20ms的漫游切换延迟和超远传输距离(点对点桥接可达150公里以上)。产品具备IP68防水、-45~85℃宽温运行、多重看门狗、防浪涌、防静电等工业级防护设计,适用于复杂恶劣环境。支持胖瘦AP模式、多种认证与管理方式(含云平台、API接口),并集成丰富的网络安全与QoS功能,适用于智慧物流、工业4.0、巡检机器人、无人机、车载船舶等多种场景。; 适合人群:从事工业物联网、智能制造、自动化物流、智能交通等领域的网络工程师、系统集成商、设备制造商及技术决策人员。; 使用场景及目标:①实现移动设备(如AGV/AMR/巡检机器人)在高速移动中的零丢包、低延迟无线漫游;②在无固定网络覆盖区域构建高带宽、高可靠的远距离无线通信链路;③为5G与工业Wi-Fi双链路备份与聚合提供一体化解决方案,保障关键业务连续性;④在复杂电磁环境下实现稳定、安全的数据传输与远程控制。; 阅读建议:本产品技术参数详尽,建议结合具体应用场景重点关注其无线性能、漫游技术、供电方式与安装选项,并参考官方提供的管理平台与API接口文档进行系统集成与远程运维规划。

111,128

社区成员

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

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

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