アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記ソースでiiによってCombobox1の値を変更したいのですが
「ComboBox1.Text =」にすると
ComboBox1_SelectedIndexChanged
にかかれたプログラムが動いてしまいます。
ComboBox1_SelectedIndexChangedが動かずに
ComboBox1に値設定する方法ないでしょうか。

------------------------------------------------program
ComboBox1.Items.Add("みかん")
ComboBox1.Items.Add("りんご")
ComboBox1.Items.Add("すいか")
if ii=1 then ComboBox1.Text = "みかん"
if ii=2 then ComboBox1.Text = "りんご"
if ii=3 then ComboBox1.Text = "すいか"

環境 VB 2008 express
OS Windows XP

A 回答 (2件)

値を更新する際にイベントを切ってやればいいのではないでしょうか?



RemoveHandler ComboBox1_SelectedIndexChanged , AddressOf SelectedIndexChanged
"コンボの値更新ロジック"
AddHandler ComboBox1_SelectedIndexChanged , AddressOf SelectedIndexChanged

とやるとコンボの値更新中はSelectedIndexChangedのイベントが
切れているので動きません。
で、値更新後にイベントを再度付加してやります。
    • good
    • 0
この回答へのお礼

ありがとうございました。
RemoveHandler ComboBox1.SelectedIndexChanged , AddressOf ComboBox1_SelectedIndexChanged
で切る事ができました。

ただAddHandler した瞬間エベント発生してしまいます。
これはどうしようもないのでしょうか。

お礼日時:2009/07/10 10:36

イベントのハンドラをいじらないやり方としては、パブリック変数で制御する方法もあります。



Public Flag as Boolean

Flag = True
(ComboBoxへItem追加)
Flag = False

そして、
SelectedIndexChangedイベントの最初に、
If Flag then Exit Sub
を入れておけばイベントの本体を実行せずに終了します。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!