用c#winform拖的winform datagridvieww控件,当选中一行数据以后鼠标离开之后,就选不中了

C#winform DataGridView控件选中行标志的问题_百度知道
C#winform DataGridView控件选中行标志的问题
jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink">有点白痴的问题.com/zhidao/pic/item/79f0f736afcd71ae8c4be,并且也“设为标定”.hiphotos,我希望的效果是当我选中某行是.jpg" esrc="/zhidao/wh%3D450%2C600/sign=/zhidao/wh%3D600%2C800/sign=d1ba20aa062b41a/79f0f736afcd71ae8c4be.hiphotos,行内的字体变为红色,希望有知道的帮下忙.net大哥们帮下忙://c,说起来好像很简单.baidu,百度了几百条,需要资深的,只有当我选中其他行,那么当前行内字体为红色<a href="http
提问者采纳
直接在你的项目上下手快点M3,我不想重新摆控件加测试数据(偷懒了,呵呵)能把你的项目发给我吗
非常感谢,我只想要知道通过这个控件的哪个属性可以修改该行单元格内的字体颜色即可
想要类似效果?
差不多,是想要整行的单元格内的字体颜色改变,并且整个dataview有且只有一行是改变颜色的。
//当前行设为红色字体代码:for(int&i&=&0;i&this.dataGridView1.Columns.Ci++){this.dataGridView1.CurrentRow.Cells[i].Style.ForeColor&=&Color.R}
非常感谢,最后一个问题,如果要将整个dataview的前景色改回去呢?
改当前行字体颜色,整个dataview的前景色有变化吗?
换了其他方式去识别,谢谢您的回答了!
..................................
提问者评价
来自团队:
其他类似问题
为您推荐:
datagridview的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C# 中panel的mousewheel鼠标滚轮事件触发 - 为程序员服务
为程序员服务
C# 中panel的mousewheel鼠标滚轮事件触发
如果将窗体或容器控件(如Panel控件)的AutoScroll属性设置为True时,那么当窗体或Panel容不下其中的子控件时就会出现 滚动条,通过移动滚动条可以上下显示出窗体或Panel中的全部内容。但是默认情况下滚动条的移动只能通过鼠标直接拖动滚动条来实现,而不能通过鼠标的滚 轮来实现上下移动,因此需要手动添加代码来实现这个功能。
滚动鼠标的滚轮,触发的是窗体或控件上的 MouseWheel 事件。但是在VS.net2005中,窗体和控件的事件列表中却不包含 MouseWheel 事件,因此关于这个事件的全部代码必须手动输入。这里以添加一个Panel的 MouseWheel 事件为例。首先在窗体的构造函数或InitializeComponent函数中,添加对MouseWheel 事件的订阅:
this.Panel.MouseWheel+=new System.Windows.Forms.MouseEventHandler(this.Panel_MouseWheel);
这样只是使Panel能接收鼠标的滚动事件,但还不能实现滚动条的上下移动,因此还需要添加以下代码:
private void Panel_MouseWheel(object sender, MouseEventArgs e)
Panel.VerticalScroll.Value+=10;
Panel.Refresh();
Panel.Invalidate();
Panel.Update();
如果添加了以上代码,就认为万事大吉了,那就大错特错了。运行以上的程序,可以发现,Panel控件并不能对鼠标滚轮事件做出反应,原因是 Panel控件默认不能获得焦点,因此它就不能捕获鼠标,也就不能捕获鼠标的滚轮事件。解决方法是让Panel控件先获得焦点,可以通过Panel的 MouseClick事件或MouseEnter事件来执行this.Panel.Focus()以达到目的。这样当鼠标点击了Panel控件或移动到 Panel控件上时它就获得了焦点。因此还需要添加以下代码:
private void Panel_MouseClick(object sender, MouseEventArgs e)
this.Panel.Focus();
这样再执行程序,就可以达到通过鼠标滚动来移动滚动条的目的了。
除此之外还要说的一点是,触发鼠标的滚动事件后,处理事件的函数参数 MouseEventArgs e 中有个Delta属性,默认情况下向上滚动e.Delta=120,向下滚动e.Delta=-120。
以上的程序还不是特别完美,因为当Panel控件较大而没有显示滚动条时,或滚动条已在最上方而滚轮又是向上滚动,或滚动条已在最下方而滚轮又 是向下滚动时,同样会执行Panel.Refresh();Panel.Invalidate();Panel.Update();等窗体重绘代码,占用 较多资源。因此可以在执行这些代码前先对Panel的当前状况做判断。完整的程序代码如下:
public partial class PlotInfoForm. Form
int lastRightPanelVerticalScrollValue=-1;//为鼠标滚动事件提供一个静态变量,用来存储上次滚动后的VerticalScroll.Value
public PlotInfoForm()
InitializeComponent();
this.rightPanel.MouseWheel+=newSystem.Windows.Forms.MouseEventHandler(this.rightPanel_MouseWheel);
//当鼠标在右侧面板上单击时,激活其滚动事件
private void rightPanel_MouseClick(object sender, MouseEventArgs e)
this.rightPanel.Focus();
private void rightPanel_MouseWheel(object sender, MouseEventArgs e)
if(!(rightPanel.VerticalScroll.Visible==false||(rightPanel.VerticalScroll.Value==0&&e.Delta&0)||(rightPanel.VerticalScroll.Value==lastRightPanelVerticalScrollValue&&e.Delta&0)))
rightPanel.VerticalScroll.Value+=10;
lastRightPanelVerticalScrollValue=rightPanel.VerticalScroll.V
rightPanel.Refresh();
rightPanel.Invalidate();
rightPanel.Update();
您可能的代码
相关聚客文章
荣誉:1155
相关专栏文章当前位置: →
→ C# 关于DataGridView控件带选择框,要求选择框可以勾选,但是行不能处于编辑状态
C# 关于DataGridView控件带选择框,要求选择框可以勾选,但是行不能处于编辑状态
& 作者及来源: 清风暮雨 - 博客园 &
&收藏到→_→:
摘要: C# 关于DataGridView控件带选择框,要求选择框可以勾选,但是行不能处于编辑状态。
"C# 关于DataGridView控件带选择框,要求选择框可以勾选,但是行不能处于编辑状态"::
解决办法一:
1.设置datagridview控件的readonly属性为true。
目的是设置datagridview控件不可编辑。
2.在代码中实现
1 #region 单击选择
private void dgvxctnpoc_cellclick(object sender, datagridviewcelleventargs e)
if (e.rowindex == -1)
this.dgvxctnpoc["选择", e.rowindex].value = (this.dgvxctnpoc["选择", e.rowindex].value == null || this.dgvxctnpoc["选择", e.rowindex].value.tostring().tolower() == "false") ? true : false;
#endregion
这样就实现了,可以勾选datagridview控件行,但是datagridview控件又不可以编辑。
效果如果:
搜索此文相关文章:此文来自: 马开东博客
网址: 站长QQ
C# 关于DataGridView控件带选择框,要求选择框可以勾选,但是行不能处于编辑状态_博客园相关文章
博客园_总排行榜
博客园_最新
博客园_月排行榜
博客园_周排行榜
博客园_日排行榜新手求教,datagridview保存到数据的问题,先谢谢各位了_c#吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:86,345贴子:
我用的是VS2010winform中我拖一个datagridview控件,如下图医生工号,诊断号等是自己添加的,不是绑定数据库的。我在SQLserver2008数据库中建的表如图如何在datagridview单元格中填写数据并且单击确定保存到数据库该表中。自己想了好久,也在网上查了很多,但是都无法实现。求大神帮忙,给我详细的代码吧。先谢谢各位了。
福利不只是穿多穿少,还要有迷人的微笑!
你需要数据适配器 ——我喂自己袋盐&&Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
这个就是一个sql语句的问题吧
我是小白,不过用DataSet绑定DGV然后用DataAdapter的Update方法实现保存?不过好像要对应上数据库里的列~说错了别笑。
这个...............单击的时候根据dgv有个选中一行的事件,可以用这个事件获取里边的值,然后就update就可以了.........
——我喂自己袋盐&&Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
给你个例子
// 窗体加载事件处理,加载时填充数据集,显示数据
private void StudentListForm_Load(object sender, EventArgs e)
// 查询用的 sql 语句
string sql = "SELECT StudentId, LoginId, StudentName, StudentNO, Sex, Phone, Address, JobWanted FROM Student";
// 创建 DataAdapter 对象
dataAdapter = new SqlDataAdapter(sql, DBHelper.connection);
// 填充数据集
dataAdapter.Fill(dataSet, "Student");
// 指定 DataGridView 数据源,显示数据
dgvStudent.DataSource = dataSet.Tables["Student"];
// 设置筛选条件的默认值
cboSex.Text = "全部";
// “保存修改”按钮 Click 事件处理,将数据提交给数据库
private void btnUpdate_Click(object sender, EventArgs e)
DialogResult result = MessageBox.Show(
"确定要保存修改吗?", "操作提示",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (result == DialogResult.OK)
// 确认修改
// 自动生成更新数据用的命令
SqlCommandBuilder builder = new SqlCommandBuilder(dataAdapter);
// 将修改过的数据提交到数据库
dataAdapter.Update(dataSet, "Student");
// “筛选”按钮的 Click 事件处理,组合SQL语句,重新填充数据集
private void btnReFill_Click(object sender, EventArgs e)
// 基本 SQL 语句
string sql = "SELECT StudentId, LoginId, StudentName, StudentNO, Sex, Phone, Address, JobWanted FROM Student";
// 根据组合框的选择组合 SQL 语句
switch (cboSex.Text)
case "男":
// 增加性别为男的条件
sql += " WHERE Sex = '男'";
case "女": // 增加性别为女的条件
sql += " WHERE Sex = '女'";
// 不做任何操作
dataSet.Tables["Student"].Clear();
// 重新指定 DataAdapter 对象的查询语句
mandText =
// 重新填充数据集
dataAdapter.Fill(dataSet, "Student");
// 关闭按钮事件处理,关闭窗体
private void btnClose_Click(object sender, EventArgs e)
this.Close();
// “刷新”按钮的 Click 事件处理,重新填充数据集并显示
private void btnRefresh_Click(object sender, EventArgs e)
// 查询用的 sql 语句
string sql = "SELECT StudentId, LoginId, StudentName, StudentNO, Sex, Phone, Address, JobWanted FROM Student";
cboSex.Text = "全部";
dataSet.Tables["Student"].Clear(); // 清空原来的表
// 创建 DataAdapter 对象
mandText =
// 填充数据集
dataAdapter.Fill(dataSet, "Student");
} ——我喂自己袋盐&&Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
你是要自行处理SqlCmd指令...并且自行处理dgv的row.insert吧...还是乖乖的配合DataSet会比较好处理...
。。。。。。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 datagridview选中多行 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信