tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル質問の続きですが・・
記事No12013
投稿日: 2008/04/15(Tue) 15:35
投稿者見学
度々の質問恐縮ですが、

Select Case cmb.ListIndex
  
Case Is = 0
Call WritePrivateProfileString("Section1", "Key1", list.Text, App.Path& "\File.ini")
Case Is = 1
Call WritePrivateProfileString("Section1", "Key2", list.Text, App.Path& "\File.ini")
End Select

上のコードでSelect文とListIndexを使いインデックス番号と指定番号(キーの順番)が等しくなった時、その番号のキーの値を書き込みたいのですが、コンボ上で上書きしたらインデックス番号が-1になってしまいます。
これを防ぐ方法とかよろしければヒントを下さい。

[ツリー表示へ]
タイトルRe: 質問の続きですが・・
記事No12014
投稿日: 2008/04/15(Tue) 16:25
投稿者リル
ComboBoxに入力した内容をiniファイルに書き込みたいということでしょうか?
Combo1を作成後、以下のソースを試してみてください。
※iniファイルのバックアップ(コンボに入力された内容で書き換えるので)はとっておいてください。

Private priIndex As Integer

Private Sub Form_Load()
    Combo1.AddItem "Key1"
    Combo1.AddItem "Key2"
    Combo1.AddItem "Key3"
    
    Combo1.ListIndex = 0
End Sub

Private Sub Combo1_Click()
    priIndex = Combo1.ListIndex
End Sub

Private Sub Combo1_Change()
    Select Case priIndex
        Case 0
            Call WritePrivateProfileString("Section1", "Key1", Combo1.Text, App.Path & "\File.ini")
        Case 1
            Call WritePrivateProfileString("Section1", "Key2", Combo1.Text, App.Path & "\File.ini")
        Case 2
            Call WritePrivateProfileString("Section1", "Key3", Combo1.Text, App.Path & "\File.ini")
    End Select
End Sub

[ツリー表示へ]
タイトルRe^2: 質問の続きですが・・
記事No12015
投稿日: 2008/04/15(Tue) 17:04
投稿者見学
> Private Sub Combo1_Click()
>     priIndex = Combo1.ListIndex
> End Sub

この部分を追加したらすぐ解決しました。
全然思いつかない個所でしたので大変勉強になりました。

iniファイルには書き込む事は出来ていたのですが、どこを書き込んでも一番上の項目しか上書き出来なかったので、これでリストの中の指定した項目に書き込めば、指定した項目が上書きされるようになりました。

リルさん、有難うございます。大変助かりました。

[ツリー表示へ]