3

ユーザー だから、視力や好みなどにより、さまざまな解像度を使用しているさまざまなユーザーがいます。

表示される C#フォームの 1 つには、 AutoSizeColumnsModeがFillに設定された datagridview があります。MSDN のオブジェクトの読み取りから、Fillでは左右のスクロール バーを使用できないことがわかりました。

問題 したがって、問題は datagridview がロードされるときです。列は高解像度で見栄えがよく、必要に応じて datagridview をその境界まで埋めます。解像度の低い画面では、スクロール バーが [塗りつぶし] オプションで有効にされていないため、一部の列が非表示になり、ユーザーが拡大して表示する必要があります。

DisplayedCellsオプション を試してみました。これは、ユーザーに低解像度でスクロールバーを提供し、見栄え/機能が優れていますしかし、より高い解像度では、最後の列と Datagridview の境界線の間に大きなギャップが残り、未完成/壊れているように見えます。

質問 「ユーザーが非常に低い解像度を使用している場合を除き、Fill に設定してDisplayedCellsを使用する」と言うにはどうすればよいですか?

4

1 に答える 1

4

あなたは解決策を得ることができます

        int screenWidth = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
        int screenHeight = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;

次に、if 節を使用して AutoSizeColumnsMode-Property を設定します。

このような:

    private void getScreenResolution()
    {
        int screenWidth = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
        int screenHeight = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
    }

    private void setAutoSizeColumnsMode()
    {
        if (screenWidth <= 1680 || screenHeight  <= 768)
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
        else
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
    }
于 2013-08-12T23:55:09.390 に答える