ApplicationSettingsBase Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Windows Forms uygulamalarında uygulama ayarları özelliğini uygulamak üzere somut sarmalayıcı sınıflarını türetmek için temel sınıf görevi görür.
public ref class ApplicationSettingsBase abstract : System::Configuration::SettingsBase, System::ComponentModel::INotifyPropertyChanged
public abstract class ApplicationSettingsBase : System.Configuration.SettingsBase, System.ComponentModel.INotifyPropertyChanged
type ApplicationSettingsBase = class
inherit SettingsBase
interface INotifyPropertyChanged
Public MustInherit Class ApplicationSettingsBase
Inherits SettingsBase
Implements INotifyPropertyChanged
- Devralma
- Uygulamalar
Örnekler
Aşağıdaki kod örneği, ana formun şu özniteliklerini kalıcı hale getirmek için uygulama ayarlarının kullanımını gösterir: konum, boyut, arka plan rengi ve başlık çubuğu metni. Bu özniteliklerin tümü, sınıfında sırasıyla , FormBackColor
FormSize
ve FormText
adlı FormLocation
tek uygulama ayarları özellikleri FormSettings
olarak kalıcıdır. ve Size
dışındaki FormText
tüm veriler ilişkili form özelliklerine bağlıdır ve kullanılarak DefaultSettingValueAttributevarsayılan bir ayar değeri uygulanır.
Form, aşağıdaki adlara ve işlevlere sahip dört alt denetim içerir:
Ortak renk iletişim kutusunu görüntülemek için kullanılan adlı
btnBackColor
düğme.Uygulama ayarlarında kullanılan Reload adlı
btnReload
bir düğme.Uygulama ayarlarında kullanılan Reset adlı
btnReset
bir düğme.Program hakkındaki durum bilgilerini görüntülemek için kullanılan adlı
tbStatus
metin kutusu.
Uygulamanın her yürütülmesinden sonra, formun başlık metnine ek bir nokta karakteri eklendiğine dikkat edin.
Bu kod örneği, adlı sınıfa sahip bir ColorDialog Form ve adlı colorDialog1
tbStatus
bir StatusStrip denetim ToolStripStatusLabel gerektirir. Ayrıca, , btnReset
ve btnBackColor
adlı btnReload
üç Button nesne gerektirir.
#using <System.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
using namespace System;
using namespace System::ComponentModel;
using namespace System::Drawing;
using namespace System::Configuration;
using namespace System::Windows::Forms;
namespace AppSettingsSample
{
//Application settings wrapper class
ref class FormSettings sealed: public ApplicationSettingsBase
{
public:
[UserScopedSettingAttribute()]
property String^ FormText
{
String^ get()
{
return (String^)this["FormText"];
}
void set( String^ value )
{
this["FormText"] = value;
}
}
public:
[UserScopedSettingAttribute()]
[DefaultSettingValueAttribute("0, 0")]
property Point FormLocation
{
Point get()
{
return (Point)(this["FormLocation"]);
}
void set( Point value )
{
this["FormLocation"] = value;
}
}
public:
[UserScopedSettingAttribute()]
[DefaultSettingValueAttribute("225, 200")]
property Size FormSize
{
Size get()
{
return (Size)this["FormSize"];
}
void set( Size value )
{
this["FormSize"] = value;
}
}
public:
[UserScopedSettingAttribute()]
[DefaultSettingValueAttribute("LightGray")]
property Color FormBackColor
{
Color get()
{
return (Color)this["FormBackColor"];
}
void set(Color value)
{
this["FormBackColor"] = value;
}
}
};
ref class AppSettingsForm : Form
{
/// <summary>
/// Required designer variable.
/// </summary>
private:
System::ComponentModel::IContainer^ components;
/// <summary>
/// Clean up any resources being used. The Dispose(true)
/// pattern for embedded objects is implemented with this
/// code that just contains a destructor
/// </summary>
public:
~AppSettingsForm()
{
if (components != nullptr)
{
delete components;
}
}
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private:
void InitializeComponent()
{
this->components = nullptr;
this->colorDialog = gcnew System::Windows::Forms::ColorDialog();
this->backColorButton = gcnew System::Windows::Forms::Button();
this->resetButton = gcnew System::Windows::Forms::Button();
this->statusDisplay = gcnew System::Windows::Forms::TextBox();
this->reloadButton = gcnew System::Windows::Forms::Button();
this->SuspendLayout();
//
// backColorButton
//
this->backColorButton->Location = System::Drawing::Point(26, 24);
this->backColorButton->Name = "backColorButton";
this->backColorButton->Size = System::Drawing::Size(159, 23);
this->backColorButton->TabIndex = 0;
this->backColorButton->Text = "Change Background Color";
this->backColorButton->Click += gcnew System::EventHandler
(this,&AppSettingsForm::BackColorButton_Click);
//
// resetButton
//
this->resetButton->Location = System::Drawing::Point(26, 90);
this->resetButton->Name = "resetButton";
this->resetButton->Size = System::Drawing::Size(159, 23);
this->resetButton->TabIndex = 1;
this->resetButton->Text = "Reset to Defaults";
this->resetButton->Click += gcnew System::EventHandler
(this,&AppSettingsForm::ResetButton_Click);
//
// statusDisplay
//
this->statusDisplay->Location = System::Drawing::Point(26, 123);
this->statusDisplay->Name = "statusDisplay";
this->statusDisplay->Size = System::Drawing::Size(159, 20);
this->statusDisplay->TabIndex = 2;
//
// reloadButton
//
this->reloadButton->Location = System::Drawing::Point(26, 57);
this->reloadButton->Name = "reloadButton";
this->reloadButton->Size = System::Drawing::Size(159, 23);
this->reloadButton->TabIndex = 3;
this->reloadButton->Text = "Reload from Storage";
this->reloadButton->Click += gcnew System::EventHandler
(this,&AppSettingsForm::ReloadButton_Click);
//
// AppSettingsForm
//
this->ClientSize = System::Drawing::Size(217, 166);
this->Controls->Add(this->reloadButton);
this->Controls->Add(this->statusDisplay);
this->Controls->Add(this->resetButton);
this->Controls->Add(this->backColorButton);
this->Name = "AppSettingsForm";
this->Text = "App Settings";
this->FormClosing += gcnew
System::Windows::Forms::FormClosingEventHandler
(this,&AppSettingsForm::AppSettingsForm_FormClosing);
this->Load += gcnew System::EventHandler(this,
&AppSettingsForm::AppSettingsForm_Load);
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private:
System::Windows::Forms::ColorDialog^ colorDialog;
System::Windows::Forms::Button^ backColorButton;
System::Windows::Forms::Button^ resetButton;
System::Windows::Forms::TextBox^ statusDisplay;
System::Windows::Forms::Button^ reloadButton;
FormSettings ^ formSettings;
public:
AppSettingsForm()
{
formSettings = gcnew FormSettings;
InitializeComponent();
}
private:
void AppSettingsForm_Load(Object^ sender, EventArgs^ e)
{
//Associate settings property event handlers.
formSettings->SettingChanging += gcnew SettingChangingEventHandler(
this, &AppSettingsForm::FormSettings_SettingChanging);
formSettings->SettingsSaving += gcnew SettingsSavingEventHandler(
this,&AppSettingsForm::FormSettings_SettingsSaving);
//Data bind settings properties with straightforward associations.
Binding^ backColorBinding = gcnew Binding("BackColor",
formSettings, "FormBackColor", true,
DataSourceUpdateMode::OnPropertyChanged);
this->DataBindings->Add(backColorBinding);
Binding^ sizeBinding = gcnew Binding("Size", formSettings,
"FormSize", true, DataSourceUpdateMode::OnPropertyChanged);
this->DataBindings->Add(sizeBinding);
Binding^ locationBinding = gcnew Binding("Location", formSettings,
"FormLocation", true, DataSourceUpdateMode::OnPropertyChanged);
this->DataBindings->Add(locationBinding);
//For more complex associations, manually assign associations.
String^ savedText = formSettings->FormText;
//Since there is no default value for FormText.
if (savedText != nullptr)
{
this->Text = savedText;
}
}
private:
void AppSettingsForm_FormClosing(Object^ sender,
FormClosingEventArgs^ e)
{
//Synchronize manual associations first.
formSettings->FormText = this->Text + '.';
formSettings->Save();
}
private:
void BackColorButton_Click(Object^ sender, EventArgs^ e)
{
if (::DialogResult::OK == colorDialog->ShowDialog())
{
Color color = colorDialog->Color;
this->BackColor = color;
}
}
private:
void ResetButton_Click(Object^ sender, EventArgs^ e)
{
formSettings->Reset();
this->BackColor = SystemColors::Control;
}
private:
void ReloadButton_Click(Object^ sender, EventArgs^ e)
{
formSettings->Reload();
}
private:
void FormSettings_SettingChanging(Object^ sender,
SettingChangingEventArgs^ e)
{
statusDisplay->Text = e->SettingName + ": " + e->NewValue;
}
private:
void FormSettings_SettingsSaving(Object^ sender,
CancelEventArgs^ e)
{
//Should check for settings changes first.
::DialogResult^ dialogResult = MessageBox::Show(
"Save current values for application settings?",
"Save Settings", MessageBoxButtons::YesNo);
if (::DialogResult::No == dialogResult)
{
e->Cancel = true;
}
}
};
partial class Form1 : Form
{
private FormSettings frmSettings1 = new FormSettings();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
//Associate settings property event handlers.
frmSettings1.SettingChanging += new SettingChangingEventHandler(
frmSettings1_SettingChanging);
frmSettings1.SettingsSaving += new SettingsSavingEventHandler(
frmSettings1_SettingsSaving);
//Data bind settings properties with straightforward associations.
Binding bndBackColor = new Binding("BackColor", frmSettings1,
"FormBackColor", true, DataSourceUpdateMode.OnPropertyChanged);
this.DataBindings.Add(bndBackColor);
Binding bndLocation = new Binding("Location", frmSettings1,
"FormLocation", true, DataSourceUpdateMode.OnPropertyChanged);
this.DataBindings.Add(bndLocation);
// Assign Size property, since databinding to Size doesn't work well.
this.Size = frmSettings1.FormSize;
//For more complex associations, manually assign associations.
String savedText = frmSettings1.FormText;
//Since there is no default value for FormText.
if (savedText != null)
this.Text = savedText;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//Synchronize manual associations first.
frmSettings1.FormText = this.Text + '.';
frmSettings1.FormSize = this.Size;
frmSettings1.Save();
}
private void btnBackColor_Click(object sender, EventArgs e)
{
if (DialogResult.OK == colorDialog1.ShowDialog())
{
Color c = colorDialog1.Color;
this.BackColor = c;
}
}
private void btnReset_Click(object sender, EventArgs e)
{
frmSettings1.Reset();
this.BackColor = SystemColors.Control;
}
private void btnReload_Click(object sender, EventArgs e)
{
frmSettings1.Reload();
}
void frmSettings1_SettingChanging(object sender, SettingChangingEventArgs e)
{
tbStatus.Text = e.SettingName + ": " + e.NewValue;
}
void frmSettings1_SettingsSaving(object sender, CancelEventArgs e)
{
//Should check for settings changes first.
DialogResult dr = MessageBox.Show(
"Save current values for application settings?",
"Save Settings", MessageBoxButtons.YesNo);
if (DialogResult.No == dr)
{
e.Cancel = true;
}
}
}
//Application settings wrapper class
sealed class FormSettings : ApplicationSettingsBase
{
[UserScopedSettingAttribute()]
public String FormText
{
get { return (String)this["FormText"]; }
set { this["FormText"] = value; }
}
[UserScopedSettingAttribute()]
[DefaultSettingValueAttribute("0, 0")]
public Point FormLocation
{
get { return (Point)(this["FormLocation"]); }
set { this["FormLocation"] = value; }
}
[UserScopedSettingAttribute()]
[DefaultSettingValueAttribute("225, 200")]
public Size FormSize
{
get { return (Size)this["FormSize"]; }
set { this["FormSize"] = value; }
}
[UserScopedSettingAttribute()]
[DefaultSettingValueAttribute("LightGray")]
public Color FormBackColor
{
get { return (Color)this["FormBackColor"]; }
set { this["FormBackColor"] = value; }
}
}
Imports System.Configuration
Imports System.ComponentModel
Public Class Form1
Private WithEvents frmSettings1 As New FormSettings
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _
Handles MyBase.Load
'Settings property event handlers are associated through WithEvents
' and Handles combination.
'Data bind settings properties with straightforward associations.
Dim bndBackColor As New Binding("BackColor", frmSettings1, "FormBackColor", _
True, DataSourceUpdateMode.OnPropertyChanged)
Me.DataBindings.Add(bndBackColor)
Dim bndLocation As New Binding("Location", frmSettings1, "FormLocation", _
True, DataSourceUpdateMode.OnPropertyChanged)
Me.DataBindings.Add(bndLocation)
' Assign Size property, since databinding to Size doesn't work well.
Me.Size = frmSettings1.FormSize
'For more complex associations, manually assign associations.
Dim savedText As String = frmSettings1.FormText
'Since there is no default value for FormText.
If (savedText IsNot Nothing) Then
Me.Text = savedText
End If
End Sub
Private Sub Form1_FormClosing_1(ByVal sender As Object, ByVal e As _
FormClosingEventArgs) Handles MyBase.FormClosing
'Synchronize manual associations first.
frmSettings1.FormText = Me.Text + "."c
' Save size settings manually.
frmSettings1.FormSize = Me.Size
frmSettings1.Save()
End Sub
Private Sub btnBackColor_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles btnBackColor.Click
If System.Windows.Forms.DialogResult.OK = colorDialog1.ShowDialog() Then
Dim c As Color = colorDialog1.Color
Me.BackColor = c
End If
End Sub
Private Sub btnReset_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles btnReset.Click
frmSettings1.Reset()
Me.BackColor = SystemColors.Control
End Sub
Private Sub btnReload_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles btnReload.Click
frmSettings1.Reload()
End Sub
Private Sub frmSettings1_SettingChanging(ByVal sender As Object, ByVal e As _
SettingChangingEventArgs) Handles frmSettings1.SettingChanging
tbStatus.Text = e.SettingName & ": " & e.NewValue.ToString
End Sub
Private Sub frmSettings1_SettingsSaving(ByVal sender As Object, ByVal e As _
CancelEventArgs) Handles frmSettings1.SettingsSaving
'Should check for settings changes first.
Dim dr As DialogResult = MessageBox.Show( _
"Save current values for application settings?", "Save Settings", _
MessageBoxButtons.YesNo)
If (System.Windows.Forms.DialogResult.No = dr) Then
e.Cancel = True
End If
End Sub
End Class
'Application settings wrapper class. This class defines the settings we intend to use in our application.
NotInheritable Class FormSettings
Inherits ApplicationSettingsBase
<UserScopedSettingAttribute()> _
Public Property FormText() As String
Get
Return CStr(Me("FormText"))
End Get
Set(ByVal value As String)
Me("FormText") = value
End Set
End Property
<UserScopedSettingAttribute(), DefaultSettingValueAttribute("0, 0")> _
Public Property FormLocation() As Point
Get
Return CType(Me("FormLocation"), Point)
End Get
Set(ByVal value As Point)
Me("FormLocation") = value
End Set
End Property
<UserScopedSettingAttribute(), DefaultSettingValueAttribute("225, 200")> _
Public Property FormSize() As Size
Get
Return CType(Me("FormSize"), Size)
End Get
Set(ByVal value As Size)
Me("FormSize") = value
End Set
End Property
<UserScopedSettingAttribute(), DefaultSettingValueAttribute("LightGray")> _
Public Property FormBackColor() As Color
Get
Return CType(Me("FormBackColor"), Color)
End Get
Set(ByVal value As Color)
Me("FormBackColor") = value
End Set
End Property
End Class
Açıklamalar
ApplicationSettingsBase , Web tabanlı uygulamalar tarafından kullanılan sınıfına SettingsBase aşağıdaki işlevselliği ekler:
Türetilmiş bir ayar sarmalayıcı sınıfındaki öznitelikleri algılama özelliği. ApplicationSettingsBase daha sonra açıklandığı gibi sarmalayıcı sınıfı özellikleri için kullanılan bildirim temelli modeli destekler.
Tek tek ayarların doğruluğunu sağlamak için işleyebileceğiniz ek doğrulama olayları.
Uygulama ayarları mimarisinde, bir grup ayar özelliğine erişmek için öğesinden ApplicationSettingsBasesomut bir sarmalayıcı sınıfı türetmelisiniz. Sarmalayıcı sınıfı aşağıdaki yollarla özelleştirilir ApplicationSettingsBase :
Erişilecek her ayarlar özelliği için, sarmalayıcı sınıfına karşılık gelen kesin türü belirlenmiş bir ortak özellik eklenir. Bu özelliğin okuma/yazma uygulama ayarları için ve
set
erişimcileri vardırget
, ancak yalnızca salt okunur ayarlar için birget
erişimci vardır.Ayar kapsamının (uygulama veya kullanıcı), ayarın dolaşımı desteklemesi gerekip gerekmediği, ayarın varsayılan değeri, kullanılacak ayar sağlayıcısı gibi ayarlar özelliğinin özelliklerini göstermek için sarmalayıcı sınıfının genel özelliklerine uygun öznitelikler uygulanmalıdır. Her özellik, veya UserScopedSettingAttributekullanarak ApplicationScopedSettingAttribute kapsamını belirtmek için gereklidir. Varsayılan LocalFileSettingsProvider kullanılırsa uygulama kapsamlı ayarlar salt okunurdur.
sınıfı, ApplicationSettingsBase çalışma zamanında bu öznitelikleri algılamak için yansıma kullanır. Bu bilgilerin çoğu depolama, kalıcılık biçimi vb. sorumlu olan ayarlar sağlayıcısı katmanına geçirilir.
Bir uygulamanın birden çok ayar sarmalayıcı sınıfı olduğunda, her sınıf bir ayarlar grubu tanımlar. Her grup aşağıdaki özelliklere sahiptir:
Bir grup, herhangi bir sayıda veya türde özellik ayarı içerebilir.
Grup adı, sarmalayıcı sınıfını ile SettingsGroupNameAttributesüsleyerek açıkça ayarlanmazsa, otomatik olarak bir ad oluşturulur.
Varsayılan olarak, tüm istemci tabanlı uygulamalar depolama sağlamak için kullanır LocalFileSettingsProvider . Alternatif bir ayar sağlayıcısı isteniyorsa, sarmalayıcı sınıfı veya özelliği karşılık gelen SettingsProviderAttributeile donatılmalıdır.
Uygulama ayarlarını kullanma hakkında daha fazla bilgi için bkz. Windows Forms için Uygulama Ayarları.
Oluşturucular
ApplicationSettingsBase() |
Sınıfın bir örneğini ApplicationSettingsBase varsayılan durumuna başlatır. |
ApplicationSettingsBase(IComponent) |
Sağlanan sahip bileşenini kullanarak sınıfının bir örneğini ApplicationSettingsBase başlatır. |
ApplicationSettingsBase(IComponent, String) |
Sağlanan sahip bileşeni ve ayarlar anahtarını kullanarak sınıfın bir örneğini ApplicationSettingsBase başlatır. |
ApplicationSettingsBase(String) |
Sağlanan ayarlar anahtarını kullanarak sınıfın ApplicationSettingsBase bir örneğini başlatır. |
Özellikler
Context |
Ayarlar grubuyla ilişkili uygulama ayarları bağlamını alır. |
IsSynchronized |
Nesneye erişimin eşitlenip eşitlenmediğini belirten bir değer alır (iş parçacığı güvenli). (Devralındığı yer: SettingsBase) |
Item[String] |
Belirtilen uygulama ayarları özelliğinin değerini alır veya ayarlar. |
Properties |
Sarmalayıcıdaki ayar özellikleri koleksiyonunu alır. |
PropertyValues |
Özellik değerleri koleksiyonunu alır. |
Providers |
Sarmalayıcı tarafından kullanılan uygulama ayarları sağlayıcıları koleksiyonunu alır. |
SettingsKey |
Uygulama ayarları grubu için ayarlar anahtarını alır veya ayarlar. |
Yöntemler
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetPreviousVersion(String) |
Aynı uygulamanın önceki sürümü için adlandırılmış ayarlar özelliğinin değerini döndürür. |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) |
Nesne tarafından SettingsBase kullanılan iç özellikleri başlatır. (Devralındığı yer: SettingsBase) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
OnPropertyChanged(Object, PropertyChangedEventArgs) |
Olayı tetikler PropertyChanged . |
OnSettingChanging(Object, SettingChangingEventArgs) |
Olayı tetikler SettingChanging . |
OnSettingsLoaded(Object, SettingsLoadedEventArgs) |
Olayı tetikler SettingsLoaded . |
OnSettingsSaving(Object, CancelEventArgs) |
Olayı tetikler SettingsSaving . |
Reload() |
Uygulama ayarları özellik değerlerini kalıcı depolamadan yeniler. |
Reset() |
Kalıcı uygulama ayarları değerlerini karşılık gelen varsayılan özelliklerine geri yükler. |
Save() |
Uygulama ayarları özelliklerinin geçerli değerlerini depolar. |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
Upgrade() |
Uygulama ayarlarını uygulamanın daha yeni bir yüklemesini yansıtacak şekilde Güncelleştirmeler. |
Ekinlikler
PropertyChanged |
Bir uygulama ayarları özelliğinin değeri değiştirildikten sonra gerçekleşir. |
SettingChanging |
Bir uygulama ayarları özelliğinin değeri değiştirilmeden önce gerçekleşir. |
SettingsLoaded |
Uygulama ayarları depolama alanından alındıktan sonra gerçekleşir. |
SettingsSaving |
Değerler veri deposuna kaydedilmeden önce gerçekleşir. |