0

フォームとdataGridViewsを使用してプログラムを作成しています。私は、ユーザーがフォームと dataGridViews のサイズを変更できるようにしたいと考えています。これは、ユーザーが PC の Web ブラウザーや他のウィンドウのサイズを変更するのと同じです。ウィンドウの境界をクリックしてドラッグする。私は現在、これを行う単純なバージョンを使用しています。ドックがフルに設定されたdatGridViewを含むパネルの隅に小さな画像ボックスがあり、コードを追加しました:

private void pictureBox11_MouseDown(object sender, MouseEventArgs e)
    {
        resize = true;
    }

    private void pictureBox11_MouseUp(object sender, MouseEventArgs e)
    {
        resize = false;
    }

    //Resize the Ben. List dataGrid(dataGridView4)
    private void pictureBox11_MouseMove(object sender, MouseEventArgs e)
    {
        if (resize)
        {
            this.panel4.Height = pictureBox11.Top + e.Y;
            this.panel4.Width = pictureBox11.Left + e.X;
        }
    }

これにより、ユーザーは私がやりたいことをすることができますが、私がやりたいことはできません。この方法は受け入れられますが、他の方法でできるかどうか知りたいです。もちろん、「他の方法」は、境界線をクリックしてドラッグしてサイズを変更する機能を指します。ここで、将来的に役立つ新しい有用な情報を学びたいと思っています。それで、何か助けはありますか?

4

1 に答える 1

0

これは、MouseMove イベントを使用して行うことができます。e.location をチェックして、マウスがエッジまたはコーナーの近くにあるかどうかを確認し、適切なカーソルを表示します。マウス ボタンが押されている場合は、マウスの動きに合わせて datagridview.size または .location を変更します。(マウスダウン イベントでドラッグの開始点を取得する必要があります。)

これは、概要を説明した方法と似ていますが、ボタンを押したときに数ピクセルの「ジャンプ」が発生しないように、ドラッグの開始に対して相対的に移動する必要があります。そしてもちろん、対処すべき8つの側面/コーナーがあります。また、ユーザーがカーソルの変更に関するフィードバックを受け取ることも重要です。

組み込みのアンカーまたはドッキングを使用する方が簡単ですが、この方法に問題はありません。

于 2013-01-31T17:50:29.743 に答える