2016-04-14 51 views
0

私は毎週のスケジュールを作るために使っているDataGridviewコントロールを持っています。Ctrlキーを押さずにdatagridviewの複数のセルを選択するにはどうすればいいですか?

ユーザーは、グリッドビューから複数のセルを選択することで、異なる日の異なる時刻を選択できます。

ここで問題となるのは、ユーザーが最初に複数のセルを選択してより多くのセルを選択したい場合、エンドユーザーがCtrlキーを押す必要があります。彼/彼女は利用可能なキーボードがないか、Ctrlキーを押していることを知らない。

私はスナップショットを添付しました。 ご存知の方は、私に何か解決策を教えてください。

enter image description here

+1

まず、あなたが必要なものを知っている必要があります。ユーザーがセルをクリックして選択または選択解除しても問題ありませんか?言語タグも追加してください。 –

+0

[こちらはVBソリューションです。](http://stackoverflow.com/questions/25047377/multiselect-datagridview-without-ctrl-key-with-no-flicker?rq=1) – TaW

答えて

0

おそらくあなたは、DataGridViewののCellMouseDownCellMouseMoveCellMouseUpイベントでそれを行うことができます。

0

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); 
     } 
関連する問題