c#课程设计图片管理系统Word文件下载.docx
- 文档编号:21257544
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:44
- 大小:1.31MB
c#课程设计图片管理系统Word文件下载.docx
《c#课程设计图片管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《c#课程设计图片管理系统Word文件下载.docx(44页珍藏版)》请在冰豆网上搜索。
WindowsXP、Windows7
开发工具:
MicrosoftVisualstudio2010C#、SQL2008
运行环境:
WindowsXP/7
2.系统设计
3.1.系统流程
3.2.功能模块
3.详细设计
4.1.登陆界面
本系统采用“用户—账号—数据库”一体模式,做到用户登录以后能够浏览与管理的图片及相册都为私人所有,以确保隐私安全。
4.2.主界面
菜单栏按钮除了有图标及名称以外,鼠标悬停一秒自动显示提示,主体部分左侧目录列表与缩略图显示区域之间边框位置可调。
单击选中列表名称背景自动变蓝,并且在右侧缩略图显示区域显示该目录下的图片缩略图及图片名称,单击选中缩略图会有蓝色边框且支持多选。
4.2.1.目录操作
新增目录时会有窗口提示填写新目录名称,后在目录列表里生成项,并且在系统文件夹下生成相应文件夹。
未选定目录情况下删除目录会提示选择一个目录,选定目录情况下删除目录时会有窗口提示操作不可逆是否确认,点击确认后完成删除操作。
4.2.2.图片操作
未选定目录情况下导入图片下拉列表自动显示首个目录名称,选定目录情况下导入图片下拉列表显示所选定目录名称,也可即时选定。
支持bmp,jpg,gif,jpeg,ico格式图片。
用户可以选定某图片进行改名,若有图片重名将自动改名。
状态栏显示所选图片信息。
缩略图按比例缩小并在各框中居中显示。
导入图片时下方进度条显示进度鼠标形状为漏斗。
4.3.图片浏览界面
本界面与主界面为同一窗口,开始下方工具栏隐藏,双击缩略图进入图片浏览时上方工具栏隐藏显示下方工具栏。
鼠标悬停按钮一秒则显示提示。
播放幻灯片时可自行选择时间间隔,窗口小于图片大小时可拖动也可选择合适窗口大小显示。
5.调试分析
主界面打不开
出错原因及改正:
把lstFolder的SelectedIndexChanged事件的代码没注意写在了lvView
的SelectedIndexChanged中了…使得删除路径不对…导致操作时出现异常…
将两部分代码交换
每次运行时原先保存在lstFolder的文件不显示了
错误原因及改正:
要使得上次运行时保存在图片目录文件下的文件在下次运行时也直接显示在lstFolder中…需要在MainForm_Load方法里加上如下代码
6.课程设计总结
通过这次课程设计,实现了一个简单的图片管理系统,而我也对C#软件开发有了更深
一步的认识,不论从开始分析到后来编程再到最后调试,也学到了很多在课堂上没有学到的东西。
对于VisualStudio2010和SQL2008的使用也更加熟练。
系统中存在的一些不足和系统设计上存在的缺憾,说明自己在这些方面还有很多不足之处有待自己进一步学习、提高。
在本次课程设计中,赵师赵辉和同组同学给了我很大的指导帮助,从他们哪里我学到了很多,在此表示感谢!
7.参考文献
[1]邱锦伦VisualC#.NET程序设计教程清华大学出版社2006年4月
[2]刘金岭数据库系统及应用教程—SQLServer2008清华大学出版社2013年9月
[3]陈广C#程序设计基础教程与实训北京大学出版社2013年7月
8.附录
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Windows.Forms;
namespace图片管理器
{
staticclassProgram
{
[STAThread]
staticvoidMain()
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(newfrmLogin());
}
}
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.IO;
usingSystem.Collections;
publicpartialclassMainForm:
Form
publicMainForm()
InitializeComponent();
privatestringpath=Application.StartupPath+"
\\图片目录?
"
;
privatePenboundPen=newPen(Color.Gainsboro);
privatePenselPen=newPen(Color.Blue,3);
privateSolidBrushtextBrush=newSolidBrush(Color.Black);
privateSolidBrushbgBrush;
privateStringFormatformat=newStringFormat();
privateBitmapbmpInPb;
privatePointmousePoint=newPoint();
privatePointpbPoint=newPoint();
privateboolcanDrag;
privateboolisDraging;
privateintbmpIndex;
privatevoidMainForm_Load(objectsender,EventArgse)
lvView.Dock=DockStyle.Fill;
tscbInterval.SelectedIndex=1;
ShowView();
bgBrush=newSolidBrush(lvView.BackColor);
statusStrip1.Items[0].Visible=false;
format.Alignment=StringAlignment.Center;
try
if(!
Directory.Exists(path))
Directory.CreateDirectory(path);
catch(Exceptionex)
MessageBox.Show(ex.Message,"
错误"
MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
DirectoryInfodir=newDirectoryInfo(path);
foreach(DirectoryInfodindir.GetDirectories())
Folderfolder=newFolder(Application.StartupPath,d.Name);
lstFolder.Items.Add(folder);
//lstFolder.Items.Add(folder.Name);
privatevoidForm1_Load(objectsender,EventArgse)
错ä
¨
ª
误¨
®
foreach(DirectoryInfodindir.GetDirectories())//获?
取¨
?
dir中D的Ì
目?
录?
}
privatevoidtoolStripButton1_Click(objectsender,EventArgse)
FrmCreateFolderfrmCreateFolder=newFrmCreateFolder(this.lstFolder);
frmCreateFolder.ShowDialog(this);
finally
frmCreateFolder.Dispose();
privatevoidtsbtnLoad_Click(objectsender,EventArgse)
FrmLoadPicfrmLoadPic=newFrmLoadPic(this.lstFolder,this.statusStrip1);
if(frmLoadPic.ShowDialog(this)==DialogResult.OK)
LoadToListView();
frmLoadPic.Dispose();
//销毁窗体?
privatevoidlvView_DrawItem(objectsender,DrawListViewItemEventArgse)
if(lvView.Items.Count==0)
Graphicsg=e.Graphics;
Folderfolder=(Folder)lstFolder.SelectedItem;
Bitmapbmp=folder.GetThubnail(e.Item.Text);
RectanglebmpRect=Folder.GetRectFromBounds(bmp,e.Bounds);
bmpRect.Offset(0,1);
RectangleboundRect=Folder.GetRectFromBounds(101,101,e.Bounds);
RectangletextRect=newRectangle(e.Bounds.X+4,
e.Bounds.Y+109,e.Bounds.Width-8,16);
g.DrawRectangle(boundPen,boundRect);
if((e.State&
ListViewItemStates.Selected)!
=0)
g.DrawImage(bmp,bmpRect);
boundRect.Inflate(1,1);
g.DrawRectangle(selPen,boundRect);
else
g.FillRectangle(bgBrush,textRect);
g.DrawString(e.Item.Text,lvView.Font,textBrush,textRect,format);
privatevoidLoadToListView()
lvView.BeginUpdate();
lvView.Items.Clear();
folder.IsLoaded)
folder.LoadImage();
foreach(DictionaryEntrydeinfolder.bmps)
lvView.Items.Add((string)de.Key);
lvView.EndUpdate();
privatevoidlstFolder_SelectedIndexChanged(objectsender,EventArgse)
if(lstFolder.SelectedItems.Count==0)
}//浏览
privatevoidShowView()
tsMain.Visible=true;
lstFolder.Visible=true;
splitter1.Visible=true;
lvView.Visible=true;
pbPic.Visible=false;
tsViewPic.Visible=false;
privatevoidShowImage()
tsMain.Visible=false;
lstFolder.Visible=false;
splitter1.Visible=false;
lvView.Visible=false;
pbPic.Visible=true;
tsViewPic.Visible=true;
privatevoidlvView_DoubleClick(objectsender,EventArgse)
Pointp=Control.MousePosition;
p=lvView.PointToClient(p);
ListViewHitTestInfoinfo=lvView.HitTest(p);
ShowImage();
PaintImageInPb(info.Item.Text);
bmpIndex=info.Item.Index;
privatevoidPaintImageInPb(stringbmpName)
if(bmpInPb!
=null)
bmpInPb.Dispose();
bmpInPb=folder.GetImage(bmpName);
statusStrip1.Items[1].Text="
名?
称?
:
ê
o"
+bmpName+"
尺?
寸ä
+
bmpInPb.Width.ToString()+"
x"
bmpInPb.Height.ToString();
pbPic.Image=bmpInPb;
MatchImage();
privatevoidMatchImage()
if(tsbtnNormal.Checked)
{//正常显示模式?
pbPic.Dock=DockStyle.None;
pbPic.SizeMode=PictureBoxSizeMode.AutoSize;
pbPic.Left=(panel1.Width-pbPic.Width)/2;
pbPic.Top=(panel1.Height-pbPic.Height)/2;
if(pbPic.Width>
panel1.Width||pbPic.Height>
panel1.Height)
{//图像的长或宽大于显示边框时
canDrag=true;
pbPic.Cursor=Cursors.Hand;
//改变鼠标指针样式
{//图像小于显示边框则不允许拖ª
动
canDrag=false;
pbPic.Cursor=Cursors.Default;
if(bmpInPb.Width>
panel1.Width||bmpInPb.Height>
pbPic.Dock=DockStyle.Fill;
pbPic.SizeMode=PictureBoxSizeMode.Zoom;
privatevoidtsbtnMatch_Click(objectsender,EventArgse)
ToolStripButtonbtn=(ToolStripButton)sender;
if(btn.Checked)
tsbtnNormal.Checked=false;
tsbtnMatch.Checked=false;
btn.Checked=true;
privatevoidpbPic_MouseDown(objectsender,MouseEventArgse)
if(e.Button!
=MouseButtons.Left)
isDraging=true;
mousePoint.X=e.X;
mousePoint.Y=e.Y;
pbPoint.X=pbPic.Left;
pbPoint.Y=pbPic.Top;
privatevoidpbPic_MouseMove(objectsender,MouseEventArgse)
isDraging||!
canDrag)
intx=pbPic.Left;
panel1.Width)
x+=e.X-mousePoint.X;
if(x>
0)
x=0;
elseif(x+pbPic.Width<
x=panel1.Width-pbPic.Width;
inty=pbPic.Top;
if(pbPic.Height>
y+=e.Y-mousePoint.Y;
if(y>
y=0;
elseif(y+pbPic.Height<
y=panel1.Height-pbPic.Height;
pbPic.Left=x;
pbPic.Top=y;
privatevoidpbPic_MouseUp(objectsender,MouseEventArgse)
isDraging=false;
privatevoidtsbtnReturn_Click(objectsender,EventArgse)
timer1.Stop();
pbPic.Image=null;
privatevoidtsbtnPeriod_Click(objectsender,EventArgse)
if(bmpIndex==0)
bmpIndex=lvView.Items.Count-1;
bmpIndex--;
ListViewItemitem=lvView.Items[bmpIndex];
PaintImageInPb(item.Text
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c# 课程设计 图片 管理 系统