2016-11-11 130 views
1

私はタッチスクリーン用のアプリケーションを開発しています。私は、スクロールバーのサイズを大きくして、ユーザーが使用できるようにするよう求められました。これまで私はこれを分類することができませんでした。 MainFormウィンドウのスクロールバーの幅を大きくすると、dataGridViewはそのサイズを継承します。私はいくつかのことを試しましたが、これまでのところそれを動作させることに失敗しました。dataGridViewの垂直スクロールバーの幅を変更する

私が試した最も近い二つの方法が

1です)私は、次の

foreach (Control ctrl in dataGridView1.Controls) 
    if (ctrl.GetType() == typeof(VScrollBar)) 
     ctrl.Width = 86; 

を追加グリッドを構築する場合残念ながら、これは17の幅を取得しているようだが、これでそれを上書きすることはできません新しい値86.

次のように、これをMainFormを構築する場所に配置しても、垂直スクロールバーはまだ同じように見えます。

2)私は、ツールボックスからスクロールバーを追加できることがわかりました。私がdataGridViewに接続しようとするまで、少し進歩しています。これはできません。私はイベントがあるので、移動するたびにグリッドを移動できるはずです。下記のコメントは、私が価値を得ているかどうかを確認するために使用するいくつかの項目です。

private void vScrollBar1_Scroll(object sender, ScrollEventArgs e) 
    { 
     //MessageBox.Show(vScrollBar1.Value.ToString()); 
     // MessageBox.Show(SystemInformation.VerticalScrollBarWidth.ToString()); 
     // CalculateVerticalScrollbarWidth() * 4; 
    } 

だから私は、誰かがこれを解決したかもしれないし、私と一緒に答えを共有するように私は私より高い知性の観客を求めるだろうと思いました。

dataGridView1.ScrollBars = ScrollBars.Horizontal; 

を、代わりにVerticalScrolllBarコントロールを追加します。

+0

WPFまたはリサイズまたは何か他のものを? – dymanoid

答えて

3

あなたはDGVの垂直スクロールバーをオフにすることができます。 snychでその大きさを維持し、また、そのMaximumていることを確認してください:

vScrollBar1.Maximum = dataGridView1.RowCount; 

同期コードの両方Scrollイベントにスクロールするには:

private void dataGridView1_Scroll(object sender, ScrollEventArgs e) 
{ 
    vScrollBar1.Value = e.NewValue; 
} 


private void vScrollBar1_Scroll(object sender, ScrollEventArgs e) 
{ 
    dataGridView1.FirstDisplayedScrollingRowIndex = e.NewValue; 
} 

enter image description here

+0

問題を解決したようです。 – user3884423

関連する問題