ユーザー設定の編集や奇妙な問題へのアプリケーションの作成を試みています。私はuser settingsを使って書いて、読んでいて、変数の1つを読むことができません。 Visual Studioの設定エディタでユーザー設定で間違ったdouble型の値が読み取られる
public MainWindow()
{
InitializeComponent();
input1.Value = Properties.Settings.Default.input1Setting;
input2.Value = Properties.Settings.Default.input2Setting;
}
private void input1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Properties.Settings.Default.input1Setting = Convert.ToDouble(input1.Value);
Properties.Settings.Default.Save();
}
private void input2_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Properties.Settings.Default.input2Setting = Convert.ToInt16(input2.Value);
Properties.Settings.Default.Save();
}
private void OnlyNumberValidation(object sender, TextCompositionEventArgs e)
{
Regex regex = new Regex("[^0-9]+");
e.Handled = regex.IsMatch(e.Text);
}
とXAMLスライダー
<Slider ValueChanged="input1_ValueChanged" IsSnapToTickEnabled="True" TickFrequency="0.25" Minimum="1" Maximum="50" Name="input1" PreviewTextInput="OnlyNumberValidation"/>
<Slider ValueChanged="input2_ValueChanged" IsSnapToTickEnabled="True" TickFrequency="1" Maximum="2000" Minimum="0" Name="input2" PreviewTextInput="OnlyNumberValidation"/>
intとして、二重、INPUT2として設定INPUT1。ボットスコープはユーザーに設定されます。
問題は、スライダーinput2だけが正しい値を取得することです。 input1は常に1に設定されます。
起動時にMessageBox.Show(Properties.Settings.Default.input1Setting.ToString())を追加しようとしましたが、それでもapp.configのinput1の値は1でしたが(project/bin /デバッグ/フォルダ、ローカル/会社/プロジェクト/ 1.0.0 /とVisual Studio app.configのいずれか)4)
upd1 4から4.0への変更は役に立ちませんでした。まだ1に変更されます。
設定ファイルでinput1を '4.0 'に設定してみてください。 – arbitrarystringofletters
@arbitrarystringofletters助けてくれなかった – Wurunduk
フォームの初期化によって問題が発生している可能性があります。あなたは 'MessageBox'を表示するのではなく、コンソールの設定値を書くことができますか? 'Console.Read();' – arbitrarystringofletters