問題タブ [my.settings]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vb.net - My.Settings を最後に保存した値にリセットする
現在、「設定」フォームを使用して、アプリケーションのさまざまな設定を行っています。私がやろうとしているのは、フィールドを開いて変更する前にユーザーが行った変更の前に設定を戻すことです。設定にデータがバインドされたテキスト ボックスがあり、変更を加えて [OK] をクリックすると、次に開いたときに保存されます。キャンセルを押すと保存されます。私がこれに正しく近づいているかどうかはよくわかりません。
vb.net - アプリケーションを閉じたときに My.Settings が保存されない
私が抱えている問題は、プロジェクトが終了したときに設定が保存されていないように見えることです。
私のプロジェクトはFrmMainとFrmSettingsで構成されています
コードは次のとおりです。
FrmMain: メイン フォームの読み込み時に設定を読み込む必要があります
フレーム設定:
My.Settings.SettingsSearchTerm の値を表示するボタンも追加しました。正しく保存されていますが、プロジェクトが終了すると、値は保存されません。(me.close() と END を使用)
私からの情報やコードサンプルが必要な場合はお知らせください。
vb.net - My.Settings をテキスト ファイルに書き込む
さて、テキスト ファイルへの書き込み、My.Settings からの値の取得で問題が発生しました。コードは以下です。問題は、テキスト ファイルを確認すると、最初の行 (コード内の単純な文字列) しかないことです。
コードの後のテキスト ファイルは次のようになります。
私の質問は、問題が何であるかを誰かが知っているか、またはこれを行う別の方法があるかということです。ところで、すべての My.Settings は Specialized.StringCollection であるため、多くの文字列が含まれています。
.net - My.Settings は ArrayList を保存しません
この空のプロパティを設定しました:
しかし、新しいArrayListオブジェクトをプロパティに割り当てた後でも、アプリケーションの実行ごとにプロパティは常に空のままです。
MyBase.Loadイベントのハンドラーで、この問題をテストするためだけに、このメソッドを呼び出します。
上記のコードでわかるように、新しい ArrayList に 1 つのエントリを割り当てていますが、変更はそのアプリケーションの実行中にのみ有効になります。アプリを終了すると、プロパティは再び空になります。
そしてもちろん、私はこのオプションをチェックしました:
とにかく、設定を手動でコードに保存しているので、それは不要なので...
なぜこれが起こるのですか?
どうすればこの問題を解決できますか?.
アップデート:
私が調査したところ、これは既知の問題であり、Arrays、ArrayLists、および Generic collections(Of Type) を my.settings で保存できないようです (一方、StringCollection は保存できます)。
しかし、この投稿の最後の回答(MemoryStream の回答) では、ArrayList の変更を my.settings に永続的に保存し、次のアプリケーション実行でそれを読み取る簡単な方法について説明しています。
答えは非常に良いようですが、コードと続行する手順で少し迷っているので、そこで説明されている手順を誰かが説明できますが、人間が読める言語でお願いします。
ArrayList が次のアプリケーションの実行に残っていることを確認しました。はい、しかし、MemoryStream に古い ArrayList が含まれている場合、現在行っていることは My.Settings の割り当てです。 ? を含むArraylists
元の ArrayList の代わりに、より多くを含む Arraylist としての MRU 設定String()
、およびとにかく、この方法で設定を保存した後に配列エントリをロードする方法?.
これは私がその答えから試したことです:
.net - ArrayList の変更は My.Settings には影響しません
私は再びこの他の質問ArrayList
で説明したこの問題を解決しようとしています...違いは、今回は他の外部ファイルを使用して回避するなどの代替ソリューションを探していないことです本当の問題、私は本当にMy.SettingsとArrayListを使用してこれを修正したいと思います。ここでMy.Settingsについて何が起こっているのかを理解したいと思います!.
問題は、次のように設定を設定した場合です。
次に、設定に対して実行された変更は、次のアプリの実行時に保持されます。このコードは問題を示しています。
誰かが ArrayList が実際に保存されない理由を理解するように教えてくれたり、この問題を解決する方法を教えてくれませんか?.
アップデート
この問題を解決するために、このシリアル化可能なクラスを作成しました。
また、この問題を解決するために、次のヘルパー関数を作成しました。
このように設定を初期化した時点で、シリアル化可能です。
文字列を追加した時点では、まだシリアライズ可能です。
しかし、シリアル化可能なクラス、または のような他の種類のデータ型を追加しようとするとString()
、ArrayList は次のように非シリアル化を開始します。
または、このように:
...したがって、ArrayList の内容は次回の実行時に保持されず、シリアル化できません。
また、設定タイプをSystem.Collections.ArrayList
からSystem.Object
(必死に) に変更しようとしたので、これを実行できるようになりましたが、問題は解決しません。次のアプリの実行時にコレクションが保存されないことを意味します。
vb.net - VB.Net のテキスト ボックスに数値を入力するときに、フォームの my.settings の値をどのように変更しますか?
あなたが私を助けることができるかどうか疑問に思っていましたか?私の質問は、テキストボックスに数値/小数を入力してボタンをクリックし、設定を更新してから、リンクされている別の設定で変更する場合、フォームの my.Settings の値を変更する方法があるということです変数の my.Settings に?!
フォーム 1:
パブリック クラス
フォーム 2: パブリック クラス frmExchange
クラス終了
vb.net - My.Settings DataTable を保存できません
DataTable "dtable" の内容を保存できません。この設定の範囲は USER ですが、プログラムの実行中に保存されます。プログラムを起動して My.Settings.Sales_Mapping を再ロードすると、空になります。
誰でも助けることができますか?
vb.net - 昇格された/管理者としてのプロセスから昇格されていない子プロセスを実行する
私のアプリケーションには、更新するメイン アプリケーションと同じフォルダにある「updater.exe」という別のアプリを介した組み込みの自己更新システムがあります。最新バージョンをダウンロードし、古いバージョンを終了し (実行中の場合)、上書きします。
問題は、updater.exe にアクセスするには、管理者権限で updater.exe を実行する必要があることです。C:\Program Files\MyApp
これまでのところ、メイン アプリは管理者権限で (UAC を使用して) updater.exe を実行しますが、問題が発生します。
アップデート完了後、新しくインストールしたバージョンを自動で起動させたい。何だと思う?もちろん、メインアプリも管理者権限で実行されます。シナリオは単純です:
私のアプリケーションがMy.Settings
オブジェクトを使用しているという理由だけで、管理者として実行すると、保存されているすべての設定が失われます。これは、通常、通常は常に通常のユーザーとして開始され、ご存知のようにMy.Settings
オブジェクトuser-sensivite
であるためです。
このような問題を修正するにはどうすればよいですか? 検索しましたが、「通常のユーザーとして実行」に関連するものは見つかりませんでしたが、常に管理者として実行されているため、非常に簡単です。
一方、正直なところ、アップデータ アプリはどのユーザーがそれを開始したかを知ることができないため、そのようなことはあり得ないと思います。それともできますか?私がここに欠けているものはありますか?
私が正しければ、My.Settings を使用せずに Windows レジストリを使用してユーザー設定を保存する唯一のオプションですか?
今までありがとう。