【问题标题】:How do i select multiple cells of datagridview without pressing Ctrl key?如何在不按 Ctrl 键的情况下选择多个 datagridview 单元格?
【发布时间】:2016-04-14 06:49:30
【问题描述】:

我有一个 datagridview 控件,我用它来制定每周计划。

用户可以通过从gridview中选择多个单元格来选择不同日期的不同时间。

这里的问题是,一旦用户第一次选择多个单元格并想选择更多单元格,他需要从键盘上按 Ctrl 键,这对于最终用户来说是非常难以使用的,如果他/她没有可用的键盘,或者他不知道按 Ctrl 键。

我附上了一张快照。 如果您有任何解决方案,请提供给我。

【问题讨论】:

  • 首先,你应该知道你需要什么。如果用户单击单元格以选择或取消选择它是否可以接受?另请添加语言标签。

标签: c# winforms datagridview


【解决方案1】:

也许您可以通过 DataGridView 的 CellMouseDownCellMouseMoveCellMouseUp 事件来做到这一点。

【讨论】:

    【解决方案2】:

    您可以使用输入模拟器来按住 Control 键,正如 Wudge 提到的鼠标事件,您可以解决您的问题。

    http://inputsimulator.codeplex.com/releases/view/37570

    private void Form1_Load(object sender, EventArgs e)
            {
                List<Person> mypeople = new List<Person>();
                mypeople.Add(new Person() { Key = 3, Value = "Turgay" });
                mypeople.Add(new Person() { Key = 4, Value = "Hamsi" });
                mypeople.Add(new Person() { Key = 5, Value = "Cabbar" });
    
                dataGridView1.DataSource = mypeople;
    
    
                dataGridView1.MouseEnter += DataGridView1_MouseEnter;
                dataGridView1.MouseLeave += DataGridView1_MouseLeave;
            }
    
            private void DataGridView1_MouseEnter(object sender, EventArgs e)
            {
                InputSimulator.SimulateKeyDown(VirtualKeyCode.CONTROL);
            }
    
            private void DataGridView1_MouseLeave(object sender, EventArgs e)
            {
                InputSimulator.SimulateKeyUp(VirtualKeyCode.CONTROL);
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 2011-01-23
      • 1970-01-01
      • 2011-01-25
      • 2011-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多