0

Xtragrid があり、Layoutview を使用しています。私のカードには、いくつかのコンテンツを含む 2 つのグループがあります (グループ行はありません!)。ユーザーがグループキャプションをクリックした場合、クリックイベントを発生させることは可能ですか?

普通のグループです!たとえば、3 つのテキスト編集を選択し、デザイナーで右クリック -> グループ化します。レイアウトビューのカード内で同じことができます。

よろしく。

4

2 に答える 2

2

ビューの MouseDown イベント ハンドラーを使用し、HitTests を使用してレイアウト アイテムかどうかを確認し、レイアウト アイテムをテストしてグループかどうかを確認し、Border Info を確認してキャプションの境界を取得します。

       LayoutView View = (sender as LayoutView);
        var hi = View.CalcHitInfo(e.Location);
        if (hi.HitTest == LayoutViewHitTest.LayoutItem && hi.LayoutItem is DevExpress.XtraLayout.LayoutControlGroup)
        {
            var Border = (hi.LayoutItem.ViewInfo.BorderInfo as DevExpress.Utils.Drawing.GroupObjectInfoArgs);
            if (Border.CaptionBounds.Contains(e.Location))
            {
                MessageBox.Show("Hit Group: " + Border.Caption);
                return;
            }
        }
        MessageBox.Show("Missed!");
于 2012-10-04T13:27:25.460 に答える
0

gridview mousemove イベントでマウス位置を取得します。

    private void grvReleaseInfo_MouseMove(object sender, MouseEventArgs e)
    {
        mouseLocation = e.Location;
    }

次に、グリッドビューのクリックイベントに移動し、アイテムの位置でマウス位置を確認します (私の例ではグループキャプション)

private void grvReleaseInfo_Click(object sender, EventArgs e)
        {
            if ((mouseLocation.X > 38) &&
                (mouseLocation.X < 85) &&
                (mouseLocation.Y > 46) &&
                (mouseLocation.Y < 117))
            {
                //Do sth.
            }

マウス位置は「ポイント」型の変数です。座標がわからない場合は、デバッガーでブレークポイントを設定し、アイテムの左上隅をクリックしてから右下隅をクリックすると、マウスの位置を監視できます。次に、チェックする必要がある範囲があります。

よろしく

于 2012-10-04T14:18:15.900 に答える