【发布时间】:2018-01-24 07:01:23
【问题描述】:
我正在尝试模拟用户按下 ctrl,当我以编程方式(最初)选择某些内容时,主要目标将是在 datagridview 中,如果不只是添加或减去,我不希望用户更改该选择,就像您要按住 ctrl + 鼠标左键一样。我什至不知道从哪里开始。我试图创建一个与逻辑相结合的选择更改事件,但这将导致无限循环,因为我们将由用户选择一个,然后代码更改其他和其他等无限触发该事件。请帮忙,我对编码有点陌生。我也不知道如何确定 ctrl 键是否已被按下、被按下并被按住。
private void selecttionh(object sender, EventArgs e)
{
if (stage == "4A" || stage == "3B" && ModifierKeys.HasFlag(Keys.Control))
{
int nothing = 0;
btnclickercl bt = new btnclickercl();
bt.dataGridView1_SelectionChanged(sender, e, dataGridViewReslist, dataGridViewnewres, nothing);
}
if (stage == "4A" || stage == "3B" && (ModifierKeys & Keys.Control) != Keys.Control)
{
MessageBox.Show("Please Press and hold " + "'ctrl'" + " to continue");
dataGridViewReslist.ClearSelection();
for (int i = 0; i < ResRoomSelections.Count; i++)
{
dataGridViewReslist.Rows[ResRoomSelections[i][0]].Cells[ResRoomSelections[i][1]].Selected = true;
dataGridViewReslist.Rows[ResRoomSelections[i][0]].Cells[(ResRoomSelections[i][1]) + 1].Selected = true;
}
}
else
{
dataGridViewReslist.ClearSelection();
for (int i = 0; i < ResRoomSelections.Count; i++)
{
dataGridViewReslist.Rows[ResRoomSelections[i][0]].Cells[ResRoomSelections[i][1]].Selected = true;
dataGridViewReslist.Rows[ResRoomSelections[i][0]].Cells[(ResRoomSelections[i][1]) + 1].Selected = true;
}
}
}
【问题讨论】:
标签: c# datagridview