datagridview中shift+右键选择多行怎么做?先谢谢各位。

HUOWEI 2008-12-05 10:26:56
datagridview中shift+右键选择多行怎么做?出现上下文菜单的复制,粘贴到可以多选列的单元格中呢?先谢谢各位。
...全文
592 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
全局变量:

private int startrow = -1;



以下是Datagridview的两个事件:

private void dataGridView1_KeyUp(object sender, KeyEventArgs e)
{
if (this.dataGridView1.SelectedCells.Count > 0 && e.KeyData == Keys.ShiftKey)
{
int endrow = this.dataGridView1.CurrentRow.Index;

if (startrow <= endrow)
{

//正序选时
for (int x = startrow; x <= endrow; x++)
{
this.dataGridView1.Rows[x].Cells["我的checkbox列"].Value = 1;
}
}
else
{

//倒序选时
for (int x = endrow; x <= startrow; x++)
{
this.dataGridView1.Rows[x].Cells["我的checkbox列"].Value = 1;
}
}
}
}

private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && !(Control.ModifierKeys == Keys.Shift ))
{
if (this.dataGridView1.Focused && this.dataGridView1.CurrentCell.OwningColumn.DataPropertyName == "checkbox" && Convert.ToBoolean(this.dataGridView1.CurrentCell.EditedFormattedValue) == false)
{
startrow = this.dataGridView1.CurrentRow.Index;
}
}
}
net5i 2008-12-05
  • 打赏
  • 举报
回复
给搂主写下代码吧,免得搂主再去找:

private readonly int MOUSEEVENTF_LEFTDOWN = 0x0002;
private readonly int MOUSEEVENTF_LEFTUP = 0x0004;
private readonly int MOUSEEVENTF_ABSOLUTE = 0x8000;

[System.Runtime.InteropServices.DllImport("user32")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, IntPtr dwExtraInfo);

private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
if (ModifierKeys == Keys.Shift && e.Button == MouseButtons.Right)
{
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE, e.X, e.Y, 0, IntPtr.Zero);
mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE, e.X, e.Y, 0, IntPtr.Zero);
}
}

这样就轻松实现了你的需求
sikezx 2008-12-05
  • 打赏
  • 举报
回复
做一个自定义控件啊!虽然有点麻烦,但是一劳永逸哦!嘿嘿!
net5i 2008-12-05
  • 打赏
  • 举报
回复
搂主可以自己按照DataGridView固有的 Shift + 鼠标左键 复选行来实现这个需求。

但这个比较麻烦的,这里提供给搂主一个最简单的方案:

在Shift键按下后,如果点击了右键,那么程序中模拟一个鼠标左键单击,就可以了,很方便

111,131

社区成员

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

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

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