で展開すると、これはちょっと疑問に思えるかもしれません。私は、実行時にWindowsフォーム上のチェックリストボックスに項目を追加するために使用できるテキストボックスを持っています。私はC#を使用しています。実行時に完全に正常に動作します。フォームが開いているときに、アイテムが追加され、処理されます。しかし、フォームを閉じて再度開くと、チェックリストボックスのリストに追加された項目が表示されません。注意してください、私はデータソースを使用しないし、したくないです。私は何もハードコードしたくないし、フォームのテキスト入力を変数として使用してコレクションリストに入力する方が好きです。私はチェックリストボックスオプションを拡張する方法を理解できませんでした。いかなる援助も感謝します。項目を追加して、WindowsフォームのcheckedlistboxのコレクションリストをC#
答えて
どのようにフォームを開いていますか?それはのようなものです:
FormName form = new FormName();
form.Show()
私はそれが起こっていると考えることができる唯一の理由は、あなたがそれを表示するたびに新しいフォームのインスタンスをインスタンス化するのではなく、同じフォームを再利用しているということです。
イベントハンドラform_loadとform_closedを使用します。 実行時に毎回ボックスを再チェックする必要がないように、フォームを実行するときにcheckedindicesプロパティを通じてcheckedlistboxリストのチェック項目を再投入するプログラムがあります。 –
はい、どうやってフォームを開いていますか? Form_Loadはフォームを開いたときに発生し、Form_Closedはフォームを閉じるときに発生します。私たちに良い例を与えるためにいくつかのコードを投稿してください。 – GenericTypeTea
フォームにref List<string> values
をパラメータとして指定してください。次に、CheckedListBoxのBindingSourceとしてこれを行います。
class MyForm : Form {
List<string> values;
BindingSource source;
public MyForm()
{
InitializeComponent();
}
public MyForm(ref List<string> values):this()
{
if (values == null)
values = new List<string>();
this.values = values;
checkedListBox1.DisplayMember = "Value";
checkedListBox1.ValueMember = "Value";
source = new BindingSource(this.values, null);
checkedListBox1.DataSource = source;
}
private void AddItemButton_Click(object sender, EventArgs e)
{
this.source.Add(textBox1.Text);
textBox1.Text = string.Empty;
}
}
私はオプションを探しています。興味深いですね !!!!! –
private void frmMain_Load(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(Properties.Settings.Default.CheckedItems))
{
string[] checkedIndicies = Properties.Settings.Default.CheckedItems.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
for (int i1 = 0; i1 < checkedIndicies.Length; i1++)
{
int idx;
if ((int.TryParse(checkedIndicies[i1], out idx)) && (checkedListBox1.Items.Count >= (idx+1)))
{
checkedListBox1.SetItemChecked(idx, true);
}
}
}
}
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text != "")
{
textBox1.MaxLength = 15;
// Change all text entered to be lowercase.
textBox1.CharacterCasing = CharacterCasing.Lower;
if (checkedListBox1.Items.Contains(textBox1.Text) == false)
{
checkedListBox1.Items.Add(textBox1.Text, CheckState.Checked);
textBox1.Text = "";
MessageBox.Show("Added! Click Move to see List Box");
}
else
{
MessageBox.Show("Already There!");
textBox1.Text = "";
}
}
}
private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
string idx = string.Empty;
for (int i1 = 0; i1 < checkedListBox1.CheckedIndices.Count; i1++)
idx += (string.IsNullOrEmpty(idx) ? string.Empty : ",") + Convert.ToString(checkedListBox1.CheckedIndices[i1]);
Properties.Settings.Default.CheckedItems = idx;
Properties.Settings.Default.Save();
}
これをきれいにしたいかもしれませんが、それは全く読めません。投稿を編集し、コードをコードとして正しくマークします。また、表示されている場所のコードを表示してください。 .Show()または.ShowDialog()]フォーム。 – GenericTypeTea
- 1. CheckedListBox項目の選択
- 2. C#が:ループは永遠にCheckedListBox項目をforeachの
- 3. CheckedListBox - テキストで項目を検索
- 4. Windowsエクスプローラで特定のドライブのコンテキストメニュー項目を追加する
- 5. CheckedListBox編集/追加
- 6. は、WindowsフォームのアイコンをサポートしてCheckedListBoxコントロールが
- 7. Winforms checkedlistboxは1つの項目をチェックします
- 8. Windowsのデスクトップコンテキストメニューに項目を追加する
- 9. 複数の項目をテキスト項目に重複項目を追加する
- 10. Drupal 6:メニュー項目にサブメニュー項目を追加しますか?
- 11. ImageListBoxControlに項目を追加します。
- 12. メニュー項目を別のアプリケーションに追加
- 13. 私のstringarrayに項目を追加
- 14. Finderのコンテキストメニューにカスタムメニュー項目を追加
- 15. デフォルトのTextBoxコンテキストメニューに項目を追加
- 16. C#リストボックスの項目をUsercontrolに追加する
- 17. C#リストビューの問題項目を追加する
- 18. CheckedListBoxからチェック項目の値を取得する方法?
- 19. リストボックスの項目を並べ替える - Windowsフォーム - (JavaプログラマーのC#を学ぶ)
- 20. wxPython/wxWidgetsでのシステムメニュー項目の追加
- 21. Windows 7のすべての開いているアプリケーションのタスクバーメニューに新しいメニュー項目を追加します。
- 22. QTreeView/QAbstractItemModel - 項目を追加してbeginInsertRowsを使用する
- 23. ボタンをクリックしてタブパネルにタブ(項目)を追加する、extjs
- 24. Linqを使用してSQLに関連項目を追加
- 25. Foursquare APIを使用してリストに項目を追加する
- 26. Json.netを使用してJSONに項目を追加する
- 27. listViewで列を作成して項目を追加する
- 28. JQuery Mobileを使用してリストに項目を追加する
- 29. TYPO3(6.2)とextbase:QueryResultに項目を追加
- 30. OpenFileDialogにコンテキストメニュー項目を追加する
そして、あなたが追加された項目を保存している:ここでは
は、コードのですか? –