学习C#有一段时间了,小弟有两件事不明白,求教。

bbos1994 2014-03-17 08:40:22
一,怎样把一个写好的C#文件打包成一个exe文件,我的意思是只发送给别人这个exe文件,别人可以在他的计算机上直接运行(当然那些所需要的库和框架他的计算机上也有)
二,在datagridview中,绑定了contextmenustrip之后,如何实现单击鼠标右键,可以既选中此行,又弹出此行的右键菜单(现在是选中第一行,然后在第五行右击,触发的事件还是关于第一行的)


不懂,求教。谢过各位大侠。
...全文
564 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbos1994 2014-03-20
  • 打赏
  • 举报
回复
引用 18 楼 a01589 的回复:
[quote=引用 17 楼 bbos1994 的回复:] [quote=引用 16 楼 a01589 的回复:] [quote=引用 12 楼 bbos1994 的回复:] [quote=引用 9 楼 yyantifa 的回复:] [quote=引用 8 楼 bbos1994 的回复:] [quote=引用 2 楼 bdmh 的回复:] 第一个,vs可以新建安装部署,或者用第三方的打包软件都可以做到,到别人机器上安装 第二个,可以在mouseup事件中,判断是否右键,然后用代码控制menu的弹出
弱弱的问一句,这玩意还能判断是不是右键单击??求详细。。。。。。。。满足我好学的心吧前辈。[/quote] MouseDown事件
  if(e.Button==MouseButtons.Right)
{
code.....
}
[/quote] 你说的e.button中的e是不是就是事件方法中的参数eventargs类型的那个变量?求解。[/quote] 是那个变量,这个变量封装了和鼠标有关的所有事件[/quote] 哦哦,原来那个变量是这个用处啊,,涨姿势了,那么if成立后里面的东西怎么写,, if(e.Button == MouseButtons.Right) { //这里怎么写,,总不能写 contextmenustrip.enable = true吧。。。 } 求解。。。。。[/quote] 这个我真不清楚,C/S不是我擅长的……还是等其他大神来回答吧[/quote] 额,,,有种突然断片的感觉。。。。不过还是谢谢你
  • 打赏
  • 举报
回复
引用 17 楼 bbos1994 的回复:
[quote=引用 16 楼 a01589 的回复:] [quote=引用 12 楼 bbos1994 的回复:] [quote=引用 9 楼 yyantifa 的回复:] [quote=引用 8 楼 bbos1994 的回复:] [quote=引用 2 楼 bdmh 的回复:] 第一个,vs可以新建安装部署,或者用第三方的打包软件都可以做到,到别人机器上安装 第二个,可以在mouseup事件中,判断是否右键,然后用代码控制menu的弹出
弱弱的问一句,这玩意还能判断是不是右键单击??求详细。。。。。。。。满足我好学的心吧前辈。[/quote] MouseDown事件
  if(e.Button==MouseButtons.Right)
{
code.....
}
[/quote] 你说的e.button中的e是不是就是事件方法中的参数eventargs类型的那个变量?求解。[/quote] 是那个变量,这个变量封装了和鼠标有关的所有事件[/quote] 哦哦,原来那个变量是这个用处啊,,涨姿势了,那么if成立后里面的东西怎么写,, if(e.Button == MouseButtons.Right) { //这里怎么写,,总不能写 contextmenustrip.enable = true吧。。。 } 求解。。。。。[/quote] 这个我真不清楚,C/S不是我擅长的……还是等其他大神来回答吧
bbos1994 2014-03-20
  • 打赏
  • 举报
回复
引用 16 楼 a01589 的回复:
[quote=引用 12 楼 bbos1994 的回复:] [quote=引用 9 楼 yyantifa 的回复:] [quote=引用 8 楼 bbos1994 的回复:] [quote=引用 2 楼 bdmh 的回复:] 第一个,vs可以新建安装部署,或者用第三方的打包软件都可以做到,到别人机器上安装 第二个,可以在mouseup事件中,判断是否右键,然后用代码控制menu的弹出
弱弱的问一句,这玩意还能判断是不是右键单击??求详细。。。。。。。。满足我好学的心吧前辈。[/quote] MouseDown事件
  if(e.Button==MouseButtons.Right)
{
code.....
}
[/quote] 你说的e.button中的e是不是就是事件方法中的参数eventargs类型的那个变量?求解。[/quote] 是那个变量,这个变量封装了和鼠标有关的所有事件[/quote] 哦哦,原来那个变量是这个用处啊,,涨姿势了,那么if成立后里面的东西怎么写,, if(e.Button == MouseButtons.Right) { //这里怎么写,,总不能写 contextmenustrip.enable = true吧。。。 } 求解。。。。。
  • 打赏
  • 举报
回复
引用 12 楼 bbos1994 的回复:
[quote=引用 9 楼 yyantifa 的回复:] [quote=引用 8 楼 bbos1994 的回复:] [quote=引用 2 楼 bdmh 的回复:] 第一个,vs可以新建安装部署,或者用第三方的打包软件都可以做到,到别人机器上安装 第二个,可以在mouseup事件中,判断是否右键,然后用代码控制menu的弹出
弱弱的问一句,这玩意还能判断是不是右键单击??求详细。。。。。。。。满足我好学的心吧前辈。[/quote] MouseDown事件
  if(e.Button==MouseButtons.Right)
{
code.....
}
[/quote] 你说的e.button中的e是不是就是事件方法中的参数eventargs类型的那个变量?求解。[/quote] 是那个变量,这个变量封装了和鼠标有关的所有事件
my03131302 2014-03-19
  • 打赏
  • 举报
回复
yyantifa 2014-03-18
  • 打赏
  • 举报
回复
引用 8 楼 bbos1994 的回复:
[quote=引用 2 楼 bdmh 的回复:] 第一个,vs可以新建安装部署,或者用第三方的打包软件都可以做到,到别人机器上安装 第二个,可以在mouseup事件中,判断是否右键,然后用代码控制menu的弹出
弱弱的问一句,这玩意还能判断是不是右键单击??求详细。。。。。。。。满足我好学的心吧前辈。[/quote] MouseDown事件
  if(e.Button==MouseButtons.Right)
{
code.....
}
  • 打赏
  • 举报
回复
引用 8 楼 bbos1994 的回复:
[quote=引用 2 楼 bdmh 的回复:] 第一个,vs可以新建安装部署,或者用第三方的打包软件都可以做到,到别人机器上安装 第二个,可以在mouseup事件中,判断是否右键,然后用代码控制menu的弹出
弱弱的问一句,这玩意还能判断是不是右键单击??求详细。。。。。。。。满足我好学的心吧前辈。[/quote] C#的WinForm里面封装了很多鼠标键盘操作的事件,不仅仅有右键单击,甚至还有MouseOver这样的鼠标悬停事件,具体的可以多看看MSDN
ktei2008 2014-03-18
  • 打赏
  • 举报
回复
引用 7 楼 bbos1994 的回复:
[quote=引用 5 楼 u010926958 的回复:] vs2010项目打包 1、创建项目:在解决方案里右击->【添加】->【新建项目】(注意:这里选择的是解决方案,新建的是项目) 2、把自己的程序添加到刚创建的项目中:(两种方法,推荐第二种) 1)、选中刚才创建的项目【右击】->【添加】->【项目输出】 确定后,会把你需要打包的程序bin下的关联的dll自动加载到(应用程序文件夹下),但这种方法加载的dll不完整,需要自己后来把没加载的重新考进来。然后在里面新建文件夹分类。 2)、选中(应用程序文件夹下)直接把需要打包项目bin下的文件拖进(应用程序文件夹)里。可以重新建立文件夹给组件分类。。 注意:关于程序需要注册的控件问题(这里分两种ocx组件和dll程序集) 如果您的项目中用到控件注册了,为保证用户安装后能正常运行需要给他们在安装的时候把程序需要的控件一块注册了。 注册属性分四种:我们一般只用三种,vsdrfDoNotRegister:从不注册,vsdrfCOMRelativePath:注册需要注册的dll文件,vsdrfCOMSelfReg:注册ocx组件。我们只注册后面这两种就行(默认是第一种)。 运用程序文件夹:为系统按照后的主要目录,可以把所有的资源都放在这个文件夹下,包括一些快捷方式的图标。 用户的程序菜单文件夹:开始菜单里显示的程序文件夹。 用户桌面:在用户桌面上显示的程序内容,一般只包括快捷方式。 3、快捷方式、卸载程序的添加: 1)卸载程序的添加 添加文件,去选择c盘windows里system32下的msiexec.exe程序添加进来。 右击mesiexec.exe,选择创建mesiexec.exe的快捷方式,并命名 程序菜单里的卸载程序处理:选中项目(左击)在属性项里找到ProductCode属性,把那段代码复制出来。 找到卸载的快捷方式属性里的Arguments属性:前面加个/x 后面是刚才复制的代码。注意x后面有空格。 按照此方法可多创建几个卸载的快捷方式,放到相应的目录。 2)快捷方式的添加: 右击Operating System,选择创建Operating System的快捷方式,并命名 按照此方法可同样多创建几个卸载的快捷方式,放到相应的目录。 3)为快捷方式换个图标,点击快捷方式,查看属性 4、设置参数其中Author 为作者;Manufacturer为公司名称;ProductName为应用程序的名字;例如我们设置为:IVES;Manufacturer:IVES;ProductName:OS_Setup。 把InstallAllUsers 设置为True 。(这样在“控制面板”程序中会显示公司的名称; 在安装时会默认为“任何人”,否则默认为“只有我”) 5、修改系统必备 选中刚创建的项目右击找到属性,点击系统必备,在弹出的框里选择第二个即可 5、选中刚创建的项目右击,点击生成,打包完成了。 在安装的时候要把生成的四个文件都考出来,放在一起。安装step.exe就行了。
谢谢你的回答,真专业,不过我需要的不是这种答案[/quote] 笑喷~
oysd0628 2014-03-18
  • 打赏
  • 举报
回复
如果是单单拿到exe文件的话就简单了。你选择你那个项目右键选择"生成"或"重新生成"就可以了。然后选择你那个项目,右键"在文件资源管理器中打开文件夹",在打开的这个文件夹里面,进入到Debug下面,里面有一个你刚刚生成的exe文件
bbos1994 2014-03-18
  • 打赏
  • 举报
回复
引用 9 楼 yyantifa 的回复:
[quote=引用 8 楼 bbos1994 的回复:] [quote=引用 2 楼 bdmh 的回复:] 第一个,vs可以新建安装部署,或者用第三方的打包软件都可以做到,到别人机器上安装 第二个,可以在mouseup事件中,判断是否右键,然后用代码控制menu的弹出
弱弱的问一句,这玩意还能判断是不是右键单击??求详细。。。。。。。。满足我好学的心吧前辈。[/quote] MouseDown事件
  if(e.Button==MouseButtons.Right)
{
code.....
}
[/quote] 你说的e.button中的e是不是就是事件方法中的参数eventargs类型的那个变量?求解。
bbos1994 2014-03-17
  • 打赏
  • 举报
回复
引用 2 楼 bdmh 的回复:
第一个,vs可以新建安装部署,或者用第三方的打包软件都可以做到,到别人机器上安装 第二个,可以在mouseup事件中,判断是否右键,然后用代码控制menu的弹出
弱弱的问一句,这玩意还能判断是不是右键单击??求详细。。。。。。。。满足我好学的心吧前辈。
bbos1994 2014-03-17
  • 打赏
  • 举报
回复
引用 5 楼 u010926958 的回复:
vs2010项目打包 1、创建项目:在解决方案里右击->【添加】->【新建项目】(注意:这里选择的是解决方案,新建的是项目) 2、把自己的程序添加到刚创建的项目中:(两种方法,推荐第二种) 1)、选中刚才创建的项目【右击】->【添加】->【项目输出】 确定后,会把你需要打包的程序bin下的关联的dll自动加载到(应用程序文件夹下),但这种方法加载的dll不完整,需要自己后来把没加载的重新考进来。然后在里面新建文件夹分类。 2)、选中(应用程序文件夹下)直接把需要打包项目bin下的文件拖进(应用程序文件夹)里。可以重新建立文件夹给组件分类。。 注意:关于程序需要注册的控件问题(这里分两种ocx组件和dll程序集) 如果您的项目中用到控件注册了,为保证用户安装后能正常运行需要给他们在安装的时候把程序需要的控件一块注册了。 注册属性分四种:我们一般只用三种,vsdrfDoNotRegister:从不注册,vsdrfCOMRelativePath:注册需要注册的dll文件,vsdrfCOMSelfReg:注册ocx组件。我们只注册后面这两种就行(默认是第一种)。 运用程序文件夹:为系统按照后的主要目录,可以把所有的资源都放在这个文件夹下,包括一些快捷方式的图标。 用户的程序菜单文件夹:开始菜单里显示的程序文件夹。 用户桌面:在用户桌面上显示的程序内容,一般只包括快捷方式。 3、快捷方式、卸载程序的添加: 1)卸载程序的添加 添加文件,去选择c盘windows里system32下的msiexec.exe程序添加进来。 右击mesiexec.exe,选择创建mesiexec.exe的快捷方式,并命名 程序菜单里的卸载程序处理:选中项目(左击)在属性项里找到ProductCode属性,把那段代码复制出来。 找到卸载的快捷方式属性里的Arguments属性:前面加个/x 后面是刚才复制的代码。注意x后面有空格。 按照此方法可多创建几个卸载的快捷方式,放到相应的目录。 2)快捷方式的添加: 右击Operating System,选择创建Operating System的快捷方式,并命名 按照此方法可同样多创建几个卸载的快捷方式,放到相应的目录。 3)为快捷方式换个图标,点击快捷方式,查看属性 4、设置参数其中Author 为作者;Manufacturer为公司名称;ProductName为应用程序的名字;例如我们设置为:IVES;Manufacturer:IVES;ProductName:OS_Setup。 把InstallAllUsers 设置为True 。(这样在“控制面板”程序中会显示公司的名称; 在安装时会默认为“任何人”,否则默认为“只有我”) 5、修改系统必备 选中刚创建的项目右击找到属性,点击系统必备,在弹出的框里选择第二个即可 5、选中刚创建的项目右击,点击生成,打包完成了。 在安装的时候要把生成的四个文件都考出来,放在一起。安装step.exe就行了。
谢谢你的回答,真专业,不过我需要的不是这种答案
bbos1994 2014-03-17
  • 打赏
  • 举报
回复
引用 4 楼 lulu23260 的回复:
对于第一条:若别人电脑上有.net的环境平台,主要是.net 3.5和windowsInstall 版本忘了,你的可执行程序直接拷过去就可以(当然要带着你那些可能需要的配置文件),若配置文件多,也可以用安装部署将程序打包成安装包,方法可以baidu 第二个问题:抱歉,没有用过,猜测,你在右击事件里添上显示菜单的可以吗?
右击事件? 恩,我去瞅瞅
叶落无痕0826 2014-03-17
  • 打赏
  • 举报
回复
vs2010项目打包 1、创建项目:在解决方案里右击->【添加】->【新建项目】(注意:这里选择的是解决方案,新建的是项目) 2、把自己的程序添加到刚创建的项目中:(两种方法,推荐第二种) 1)、选中刚才创建的项目【右击】->【添加】->【项目输出】 确定后,会把你需要打包的程序bin下的关联的dll自动加载到(应用程序文件夹下),但这种方法加载的dll不完整,需要自己后来把没加载的重新考进来。然后在里面新建文件夹分类。 2)、选中(应用程序文件夹下)直接把需要打包项目bin下的文件拖进(应用程序文件夹)里。可以重新建立文件夹给组件分类。。 注意:关于程序需要注册的控件问题(这里分两种ocx组件和dll程序集) 如果您的项目中用到控件注册了,为保证用户安装后能正常运行需要给他们在安装的时候把程序需要的控件一块注册了。 注册属性分四种:我们一般只用三种,vsdrfDoNotRegister:从不注册,vsdrfCOMRelativePath:注册需要注册的dll文件,vsdrfCOMSelfReg:注册ocx组件。我们只注册后面这两种就行(默认是第一种)。 运用程序文件夹:为系统按照后的主要目录,可以把所有的资源都放在这个文件夹下,包括一些快捷方式的图标。 用户的程序菜单文件夹:开始菜单里显示的程序文件夹。 用户桌面:在用户桌面上显示的程序内容,一般只包括快捷方式。 3、快捷方式、卸载程序的添加: 1)卸载程序的添加 添加文件,去选择c盘windows里system32下的msiexec.exe程序添加进来。 右击mesiexec.exe,选择创建mesiexec.exe的快捷方式,并命名 程序菜单里的卸载程序处理:选中项目(左击)在属性项里找到ProductCode属性,把那段代码复制出来。 找到卸载的快捷方式属性里的Arguments属性:前面加个/x 后面是刚才复制的代码。注意x后面有空格。 按照此方法可多创建几个卸载的快捷方式,放到相应的目录。 2)快捷方式的添加: 右击Operating System,选择创建Operating System的快捷方式,并命名 按照此方法可同样多创建几个卸载的快捷方式,放到相应的目录。 3)为快捷方式换个图标,点击快捷方式,查看属性 4、设置参数其中Author 为作者;Manufacturer为公司名称;ProductName为应用程序的名字;例如我们设置为:IVES;Manufacturer:IVES;ProductName:OS_Setup。 把InstallAllUsers 设置为True 。(这样在“控制面板”程序中会显示公司的名称; 在安装时会默认为“任何人”,否则默认为“只有我”) 5、修改系统必备 选中刚创建的项目右击找到属性,点击系统必备,在弹出的框里选择第二个即可 5、选中刚创建的项目右击,点击生成,打包完成了。 在安装的时候要把生成的四个文件都考出来,放在一起。安装step.exe就行了。
lulu23260 2014-03-17
  • 打赏
  • 举报
回复
对于第一条:若别人电脑上有.net的环境平台,主要是.net 3.5和windowsInstall 版本忘了,你的可执行程序直接拷过去就可以(当然要带着你那些可能需要的配置文件),若配置文件多,也可以用安装部署将程序打包成安装包,方法可以baidu 第二个问题:抱歉,没有用过,猜测,你在右击事件里添上显示菜单的可以吗?
bdmh 2014-03-17
  • 打赏
  • 举报
回复
第一个,vs可以新建安装部署,或者用第三方的打包软件都可以做到,到别人机器上安装 第二个,可以在mouseup事件中,判断是否右键,然后用代码控制menu的弹出
bbos1994 2014-03-17
  • 打赏
  • 举报
回复
补充说明,对于第一条,我的前提是我只写了一个简单的控制台程序

110,537

社区成员

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

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

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