私はUltraGridを使用しており、AfterRowActivateイベントとCellChangeイベントの処理に関心があります。ブール型列と非アクティブ行のセルをクリックすると、最初のAfterRowActivateとCellChangeの両方のイベントがトリガーされます。 boolean型の列のセルをクリックしてイベントを発生させたAfterRowActivateを処理するメソッドで知る方法はありますか?したがって、CellChangeイベントも発生しますか?AfterRowActivateイベントとCellChangeイベントの同時処理
0
A
答えて
0
AfterRowActivateイベントでブールセルがクリックされたかどうかを直接見つける方法はありません。このイベントは、行セレクタをクリックした後に行がアクティブになったときに発生することがあります。あなたが試すことができるのは、ユーザーがクリックしたUIElementを取得することです。 UIElementがCheckEditorCheckBoxUIElementの場合、これはおそらくチェックボックスのセルがクリックされたことを示します。
private void UltraGrid1_AfterRowActivate(object sender, EventArgs e)
{
var grid = sender as UltraGrid;
if(grid == null)
return;
// Get the element where user clicked
var element = grid.DisplayLayout.UIElement.ElementFromPoint(grid.PointToClient(Cursor.Position));
// Check if the element is CheckIndicatorUIElement. If so the user clicked exactly
// on the check box. The element's parent should be CheckEditorCheckBoxUIElement
CheckEditorCheckBoxUIElement checkEditorCheckBoxElement = null;
if(element is CheckIndicatorUIElement)
{
checkEditorCheckBoxElement = element.Parent as CheckEditorCheckBoxUIElement;
}
// Check if the element is CheckEditorCheckBoxUIElement. If so the user clicked
// on a check box cell, but not on the check box
else if(element is CheckEditorCheckBoxUIElement)
{
checkEditorCheckBoxElement = element as CheckEditorCheckBoxUIElement;
}
// If checkEditorCheckBoxElement is not null check box cell was clicked
if(checkEditorCheckBoxElement != null)
{
// You can get the cell from the parent of the parent of CheckEditorCheckBoxUIElement
// Here is the hierarchy:
// CellUIElement
// EmbeddableCheckUIElement
// CheckEditorCheckBoxUIElement
// CheckIndicatorUIElement
// Find the CellUIElement and get the Cell of it
if(checkEditorCheckBoxElement.Parent != null && checkEditorCheckBoxElement.Parent.Parent != null)
{
var cellElement = checkEditorCheckBoxElement.Parent.Parent as CellUIElement;
if(cellElement != null)
{
var cell = cellElement.Cell;
}
}
}
}
関連する問題
- 1. onClickイベントとonTouchEventイベントを同時に処理する
- 2. JavaFxと同時に複数のイベントを処理する
- 3. Python + PyGame - マウスとキーボードの同時イベントを処理する
- 4. jQueryでの非同期イベントの処理
- 5. JQueryのUIとイベント処理
- 6. javascriptイベント処理
- 7. LuaInterfaceイベント処理
- 8. イベント処理ダイアログボックス
- 9. イベント処理
- 10. javascriptイベント処理
- 11. as3イベント処理
- 12. XLib非同期イベント処理(XBCなし)
- 13. xamlのイベント処理
- 14. javascriptのイベント処理
- 15. GTKSDL - イベントの処理
- 16. onclickイベントの処理
- 17. パジャマのイベント処理
- 18. デルファイのイベント処理
- 19. NSRunloopsと強制イベント処理
- 20. WPFラジオボタンとテキストボックス - イベント処理
- 21. Zオーダーとイベント処理wpf
- 22. vue.js:同じ要素のclickイベントとdblclickイベントを処理する方法
- 23. 複合イベント処理
- 24. ヘッドレスSDLイベント処理
- 25. Skype4COM C++イベント処理
- 26. WPFユーザーコントロールのイベントの処理
- 27. NSWindowでのイベントの処理
- 28. レイトバインドオブジェクトのイベントの処理
- 29. スカラーのScrollBarイベントの処理
- 30. wxPythonのイベントの処理
CellChangedイベントの前に発生し、クリックされたセルに関する情報を含むAfterCellActivateがあります。 AfterRowActivateは、現在のセルに関する情報を持たない通常のEventArgsパラメーターを受け取ります。なぜあなたはAfterRowActivateを処理する必要がありますか? – Steve
ポイントは、UltraDockManager内にUltraPanelがあり、アクティブな行がブール型の列をチェックしているかどうかによって、パネルを表示または非表示にしたいということです。だから私はAfterRowActivateパネルを表示または非表示にする必要があるだけでなく、同じ目的のためにCellChangeが必要です。 AfterCellActivateはCellChangeの前、AfterRowActivateの後に生成されるため、AfterRowActivateを処理するメソッドでは、ブール値のセルの値がその唯一のアクションの結果として変化するかどうかはわかりません(非ブール値のブール値列のセルをクリックすると、アクティブな行)。すべてのアイデアは非常に便利です。 @スティーブ – Robin