私はチェックリストボックスとリストボックスを同じ高さと同じ数のアイテムで持っています。リストボックスを使用して、チェックリストボックスの項目のステータスを保持します。2つのリストボックスのスクロールを同期するにはどうすればよいですか?
スクロールバーがある場合、チェックリストボックスをスクロールすると、同じインデックスのリストボックスもスクロールする必要があります。私は、彼らが別の金額でスクロールすることを除いて、仕事をしています。
private void checkedListBox1_MouseWheel(object sender, MouseEventArgs e)
{
int scroll = e.Delta/120;
if (scroll == 1)
{
checkedListBox1.TopIndex -= 5;
listBox1.TopIndex = checkedListBox1.TopIndex;
}
else if (scroll == -1)
{
checkedListBox1.TopIndex += 5;
listBox1.TopIndex = checkedListBox1.TopIndex;
}
}
また、私が選択したのと同じインデックスを取得するには、このコードを使用していますが、リストボックスのインデックスがにCheckedListBoxから選択した後に選択されるまで若干のタイムラグがあります。とにかくそれを同時に選択するには?
private void checkedListBox1_MouseClick(object sender, MouseEventArgs e)
{
if (checkedListBox1.Items.Count > 0)
{
int selected = checkedListBox1.SelectedIndex;
if (checkedListBox1.GetItemChecked(selected) == false)
{
checkedListBox1.SetItemChecked(selected, true);
listBox1.SetSelected(selected, true);
}
else if (checkedListBox1.GetItemChecked(selected) == true)
{
checkedListBox1.SetItemChecked(selected, false);
listBox1.SetSelected(selected, true);
}
}
}