- - PR -
コントロールIDの固定化
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-10-26 17:10
はじめて投稿いたします。
外部アプリケーションから、フォーム上のボタンを押下してもらうという用件があるのですが、その外部アプリケーションはコントロールIDに対して処理をおこなう仕様で、.NETはコントロールが生成される度に毎回違うIDが振られてしまう為、思うように動いてくれません。 そこで、SetWindowLong(ボタンのハンドル, GWL_ID, 固定ID)のようにしてコントロールIDを固定化したのですが、今度はボタンに対して何かイベントが発生するたびに、例外が生成されてしまいます。どうやら内部でもっているIDとこちらで勝手に変えてしまったIDが合わないので例外になってしまうのだと思うのですが。 どうしたら安全にコントロールIDを毎回同じ番号にすることができるのでしょうか? ご教授いただけたら幸いです。 よろしくお願いします。 | ||||
|
投稿日時: 2007-10-26 17:17
だからといって、コントロール ID を同じにするという対策を考えるのではなく、別のアプローチを考えた方が良いのではないでしょうか。 外部アプリケーションのテクノロジが何であるかにもよりますが。(環境面の情報は記載して欲しいです) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2007-10-26 17:47
じゃんぬねっと さん さっそくのお返事ありがとうございます。
コントロールIDを指定してボタン押下してくる外部アプリケーションは、私の管轄外ですでに使用が決定しているため、他のアプリケーションを選択することも、そのアプリケーションが別のテクノロジを選択してくれることも不可能な状態です。 別の対策となると、こちらがコントロールIDを静的に決められるテクノロジを選択するしかないという状況です。 | ||||
|
投稿日時: 2007-11-11 11:59
自己レスですみません。
Microsoftに問い合わせた結果 .NET Framework 1.1 の既知バグであることが判明し、修正プログラムを当てたら解決しました。 参考資料 http://support.microsoft.com/kb/875434/en-us お騒がせしました。 |
1