2016-03-28 43 views
0

我使用C#在VS2013中編程。我試圖修改一個下拉文本框(Telerik RadDropDownListElement)。打開軟件時,上次用戶的輸入將是默認值。x.Text在分配默認值後不會更新

我使用Properties.Settings.Default.var來保存用戶輸入。當我將其分配給x.Text時,我無法再訪問用戶在運行時輸入的文本框中的值。

public Initialize() 
{ 
    /****other initial ****/ 
    x.Text = Properties.Settings.Default.var; 
    // set text to default value 
} 

private void save_button_Click(object sender, EventArgs e) 
{ 
    Properties.Settings.Default.var = x.Text; 
    //x.Test still has the default value, not the value in textbox 

    Properties.Settings.Default.save(); 
} 

我試圖從下面的鏈接使用屬性綁定,但我得到了類似的結果。 Automatically update the Application Setting using the binding from VS.Net Designer

當我點擊保存按鈕時,如何訪問文本框中的值而不是默認值?

/****編輯詳細****/
我可以x.Text保存到VAR,如果我註釋掉
x.Text = Properties.Settings.Default.var;
但當時未顯示的默認值。

我用下拉列表作爲一個簡單的文本框。這會產生重大的不同嗎?
我沒有使用下拉列表的索引,只是文本。

+0

你有一個名爲'Properties.Settins'的類嗎?還是你的問題中只有兩個拼寫錯誤?你輸入了這個或切割/粘貼?您是否在調試器中驗證x.Text的值(想知道您的註釋代碼),還是假設它是或不是保存到您的屬性? –

+0

@KoryGill抱歉。我輸入了這個,因爲另一臺電腦沒有互聯網。我在調試器中驗證了x.Text的值。 – Ray

+0

我將所有的下拉列表替換爲文本框,現在它可以工作。 – Ray

回答

0

我想這取決於你是如何填充下拉列表。如果它處於未綁定模式,並且您已手動添加項目,則可以設置控件的文本,但如果綁定了,則應使用值。

但是,我會建議不同的方法。而不是設置文本,請設置SelectedItem(或SelectedIndex屬性)。要設置的SelectedItem,找到你需要選擇並將其分配給屬性的項目:

radDropDownList1.SelectedItem = radDropDownList1.FindItemExact("your string", true); 

確保FindItemExact返回一個項目,如果沒有,請檢查您的項目,你必須保存的字符串。

還有其他一些Find *方法可以使用。它們返回索引,可以在SelectedIndex屬性中設置。

+0

前面的程序員使用下拉列表作爲文本框,所以下拉列表根本不會被彈出(空白)。這有什麼區別嗎? – Ray

+0

在這種情況下,這應該工作得很好。你可以用RadTextBox替換它,看看它是如何工作的,或者你可以上傳一個可以觀察問題的示例,我可以看看。 – checho

+0

謝謝!我只是用radTextBox替換我的radDropDownList,現在它工作。但是您的解決方案對於我的項目其他部分非常有用。 – Ray

0

嘗試Properties.Settings.Default["mysetting"];

+0

你是什麼意思?將所有Properties.Settings.Default.var替換爲Properties.Settings.Default [「mysetting」]?我必須在某處宣佈mysetting嗎? – Ray

+0

查看解決方案的「屬性」目錄。應該有一個名爲Settings.settings的文件。打開它,並開始設置設置:) – Jace

+0

我已經設置了我的Settings.settings。在我上面的代碼中是「var」「string」「user」 – Ray