2017-05-23 5 views
2

ユーザーが直接対話できないフォームに配置されたDataGridViewがあります。この効果を得るには、フォームを無効にする必要があります。その結果、DataGridViewも無効になります。これは、スクロールバーがグレー表示され、コントロールのユーザーの現在の位置を表示しないことを意味します。ユーザーはのDataGridViewを別の形式で使用しているため、リストの大きさと場所を確認することが重要です。無効になっている垂直スクロールバーを表示するDataGridView

私の質問は次のとおりです。無効になっているDataGridViewに垂直スクロールバーを表示するにはどうすればよいですか?

メモ:多くの人が、DataGridViewを有効にしてReadOnlyプロパティをtrueに設定することでこの問題を解決しました。これは、親フォームを無効にする必要があるため、私にとっては機能しません。

+2

グリッドが無効の場合、スクロールバーは機能しません。 – LarsTech

答えて

1

グリッドが無効の場合、スクロールバーを有効にすることはできません。

以下のノートでは、ノートを探します。スクロール可能なコントロールが無効になっていると、スクロールバーも無効になります。たとえば、無効な複数行のテキストボックスは、すべての行のテキストを表示するためにスクロールできません。

SRC:https://msdn.microsoft.com/en-us/library/system.windows.forms.control.enabled(v=vs.110).aspx

しかし、あなたは別の方法であなたの目標を達成することができます。

以下を試してください。説明はコメントです。

  //INSTEAD OF DISABLING FORM, DISABLE ALL THE CONTROLS IN THE FORM 
      foreach (var pb in this.Controls.OfType<Control>()) 
      { 
       pb.Enabled = false; 
      } 

      //NOW ENABLE THE DATAGRID VIEW 
      this.dataGridView1.Enabled = true; 

      //MAKE DATAGRID VIEW READ ONLY 
      this.dataGridView1.ReadOnly = true; 
+0

あなたの提案に感謝しますが、私の質問に記載されているように、私はフォーム自体を無効にする必要があるので、これは実行可能な回避策ではありません。スクロールバーを有効にする方法がないというあなたの主張の原因はありますか? –

+1

このリンクの@NathanVanDyken https://msdn.microsoft.com/en-us/library/system.windows.forms.control.enabled(v=vs.110).aspx注記:スクロール可能なコントロールが無効な場合スクロールバーも無効になります。たとえば、無効な複数行のテキストボックスは、すべての行のテキストを表示するためにスクロールできません。 – Naidu

+0

Datagridviewを読み取り専用にすると、グリッドビューのコンテンツを機能させることができます。たとえば、セル内のチェックボックスはクリック可能なままです –

関連する問題