0

エラーを強調表示するために、データグリッド内に Windows フォームのツールチップを表示しようとしています。私が抱えている問題は、 を呼び出すたびにtooltip.Show("You have an error", datagrid, 0, 0)、ツールチップがデータグリッドの境界内に限定され、外に出ないことです。これは、最終的にツールチップ自体がエラーが発生した実際の行を覆い隠すことを意味します。

考えてみましtooltip.Show("You have an error", Form1, ?, ?)たが、フォーム上のデータグリッドのオフセットを計算する簡単な方法がわかりません。すべてのコントロールがドッキングされているため、ユーザーがフォームのサイズを変更する方法に応じて、場所が変わります。

注意点があります。datagrid 自体は Forms.DataGrid ではなく、Infragistics UltraGrid であり、それ自体が面白いことを行う可能性があり、変更する能力の範囲外です。

4

2 に答える 2

0

これらを見ましたか:

HOWTO:WinGrid の高度なツールチップを作成する

BeforeDisplayDataErrorTooltip イベント

于 2009-01-29T23:42:40.850 に答える
0

それに関連付けられた UIElement をクエリすることで、UltraGrid から Show コマンドの場所を簡単に取得できることがわかりました。これが私がやっていることです:

private void ultraGrid1_BeforeCellUpdate(object sender, BeforeCellUpdateEventArgs e)
{
    if (!DataFormat.CanEdit(e.Cell.Row.ListObject, e.Cell.Column.PropertyDescriptor))
    {  
        var tip = new System.Windows.Forms.ToolTip();
        tip.BackColor = Color.Orange;
        tip.Show("unable to edit", this, e.Cell.GetUIElement().Rect.Left, e.Cell.GetUIElement().Rect.Top, 500);
        e.Cancel = true;
    }
}
于 2010-02-23T23:13:54.727 に答える