2009-07-05 12 views
2

単純な問題(私は思う):事前定義されたオブジェクト、具体的には標準のC#BindingNavigatorbindingNavigatorDeleteItemボタンでクリックメソッドを呼び出せます。レコードを削除できることを確認できるように、削除を傍受する必要があります。そうであれば、前述のクリックイベントを呼び出して、そのレコードを削除するという素晴らしい仕事をしたいと思います。レコードが削除に適格でない場合は、削除を中止します。ボタンのクリックメソッドをプログラムで呼び出す

鉱山のエンジニアリング同僚は、私は単にのToolStripに別のボタンを追加して、レコードの適格性をチェックし、必要に応じて、元の削除ボタンを呼び出すために(もちろん、私はために得ることができ、)クリックする方法です使用することを示唆しています。

もう1つ、より良い方法がある場合は、それに沿って渡してください。

答えて

2

クリックを呼び出すだけでPerformClick()を使用できるはずです。

あなたが言及した他の事柄によって少し失われました - あなたは明確にすることができますか?

+0

私は "PerformClick()"メソッドを試してみましたが、何も起こりません! PerformClick()メソッドが実際に実行する前に、私がしなければならない他の準備がありますか?この方法に付属するヘルプは、「有益な」ものではありません。「マウスでクリックするとツールストリップアイテムをアクティブにします」という1行のテキストです。私はReflection(StackOverflowでの別の投稿のおかげで)メソッドを呼び出すことに成功しましたが、PerformClickClickの優雅さが私が探しているものです。他のものに心配はありません。 – Bruce

+1

気にしないでください。 MSの "輝かしい"プログラマは、ボタンが見えない場合、その機能は必要ないと判断しました... PerformClickは、ボタンが有効で可視(ソースコードから取得)の場合にのみ機能します。 – Bruce

+0

このコメントをお寄せいただきありがとうございます。私は同様の問題にぶつかっていました。私は単体テスト時にコントロールを実際に表示する必要はないと感じたので、ボタンは表示されず、何も起こりませんでした! –

2

ツールストリップボタンを傍受するのではなく(DataGrid内の行を削除するなどの方法でユーザーに公開する)、無効な場合はデータソースのイベントの1つを使用して削除をキャンセルします。

+0

私はRowDeletingイベントを調べたところ、いくつかのイベントのCancelEventArgsでのキャンセルのような削除を終わらせる明確な方法は見当たりませんでしたので、別のトラックを降りました。もし私が何かを見逃したら、明かりを灯してください! – Bruce

+0

あなたは何かを見逃すことはありません - DataTable.RowDeletingイベントは、削除をキャンセルする方法がありません。それは回避策にあなたを強制するので、残念です。 – Bevan

関連する問題