0
當我單擊第二次時,下面的方法給出ArgumentOutOfRangeException錯誤,並且說索引0不是有效索引。單擊第二次時ListViewItem的ArgumentOutOfRangeException
在第一次點擊它的作品!?
ListView FullRowSelect設置爲true。
我看到這發生在按ALT鍵和CONTROL鍵時。如果我不按下這些鍵就點擊它不會產生錯誤,或者如果在點擊第二次之前點擊空行,它不會給出錯誤。
有沒有辦法使用這些按鍵組合並單擊多個然後一次?
private void MultipleToText(object sender, MouseEventArgs e)
{
if (li.SelectedItems.Count <0)
return;
int SetIndex = li.FocusedItem.Index;
if (Control.ModifierKeys == (Keys.Alt|Keys.Control))
{
ListViewItem lvi = li.SelectedItems[0]; // Error happens there
DialogResult res = MessageBox.Show(lvi.SubItems[0].Text + " will be deleted. Continue ?", "", MessageBoxButtons.YesNo);
if (res == DialogResult.No)
return;
li.Items.Remove(li.SelectedItems[0]);
RemoveThisItem(SetIndex);
}
else if (Control.ModifierKeys == Keys.None)
{
ListViewItem lvi = li.SelectedItems[0];
DialogResult res = MessageBox.Show("Change the entry " + lvi.SubItems[0].Text + " ?", "", MessageBoxButtons.YesNo);
if (res == DialogResult.No)
return;
li.Items.Remove(li.SelectedItems[0]);
for (int i = 0; i < 17; ++i)
_textBox[i].Text = lvi.SubItems[i].Text;
RemoveThisItem(SetIndex);
}
}
你說得對。謝謝。我正在使用listbox並更改爲ListView我忘了更改if條件(因爲您知道它是-1的ListBox)更改後,我必須單擊2次才能獲取對話框問題?爲什麼? – 2015-04-04 00:13:06
您的MultipleToText處理程序訂閱了什麼事件? – kskyriacou 2015-04-04 00:26:08
@ kyriacoss MouseClick事件 – 2015-04-04 11:41:56