我创建了bool dropIndexes来使ladujZBazy无效,并且创建了if(dropIndexes),因为当我在checkedListBox1中检查列表中的项目并使用textBox1搜索某些项目时,我以前的检查已经消失了。
我有一个问题,没有为“ dbopakowania.ladujZBazy(字符串,布尔值)”的“ dropIndexes”形式参数给出参数。
namespace Email_Sender
{
public partial class dbopakowania : Form
{
EmailSender emailsender;
public List<List<string>> listOpakowaniaTabela =
new List<List<string>>();
public string doZamowienia = "";
List<int> indexes = new List<int>();
string typZgloszenia;
public dbopakowania(EmailSender _emailsender, string _typZgloszenia)
{
InitializeComponent();
this.emailsender = _emailsender;
this.typZgloszenia = _typZgloszenia;
if (typZgloszenia == "ZWROT")
{
label1.Text = "Zwróć opakowania:";
btnGetItem.Text = "Zwróć";
this.emailsender.txt_subject.Text = "Zwrot opakowań";
}
else if(typZgloszenia == "ZAMOWIENIE")
{
label1.Text = "Zamów opakowania:";
btnGetItem.Text = "Zamów";
this.emailsender.txt_subject.Text = "Zamówienie opakowań";
}
}
private void dbopakowania_Load(object sender, EventArgs e)
{
ladujZBazy(null);
}
private void button2_Click(object sender, EventArgs e)
{
if (label1.Text == "Zamów opakowania:")
{
for (int i = 0; i < checkedListBox1.Items.Count; i++)
{
if (checkedListBox1.GetItemCheckState(i) == CheckState.Checked)
{
AddValueToZamówienieOpakowan oknoZamowieniaOpakowania_Szczegoly = new AddValueToZamówienieOpakowan(this, indexes[i]);
oknoZamowieniaOpakowania_Szczegoly.ShowDialog();
if (doZamowienia != "")
{
this.emailsender.pozycja++;
this.emailsender.txt_msg.Text += emailsender.pozycja.ToString() + "." + " " + doZamowienia;
//this.emailsender.txt_subject.Clear();
//this.emailsender.txt_subject.Text = "Zamówienie opakowań";
}
}
}
this.Close();
}
else if (label1.Text == "Zwróć opakowania:")
{
for (int i = 0; i < checkedListBox1.Items.Count; i++)
{
if (checkedListBox1.GetItemCheckState(i) == CheckState.Checked)
{
ZwrotOpakowan oknoZamowieniaOpakowania_Szczegoly = new ZwrotOpakowan(this, indexes[i]);
oknoZamowieniaOpakowania_Szczegoly.ShowDialog();
if (doZamowienia != "")
{
this.emailsender.pozycja++;
this.emailsender.txt_msg.Text += emailsender.pozycja.ToString() + "." + " " + doZamowienia;
//this.emailsender.txt_subject.Clear();
//this.emailsender.txt_subject.Text = "Zamówienie opakowań";
}
}
}
this.Close();
}
else
{
MessageBox.Show("Nieoczekiwany Błąd - skontaktuj sie z Sewerynem", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void btn_close_Click(object sender, EventArgs e)
{
this.Close();
}
void ladujZBazy(string mustContains, bool dropIndexes)
{
if (dropIndexes)
{
checkedListBox1.Items.Clear();
listOpakowaniaTabela.Clear();
indexes.Clear();
}
bazaproduktowDBEntities dc = new bazaproduktowDBEntities();
var c1 = from d in dc.OpakowaniaTabela select d.NazwaOpakowania;
var c2 = from d in dc.OpakowaniaTabela select "(" + d.PartiaOpakowania + ")";
var c3 = from d in dc.OpakowaniaTabela select d.IloscOpakowania;
var c4 = from d in dc.OpakowaniaTabela select d.JednostkaOpakowania;
listOpakowaniaTabela.Add(c1.ToList());
listOpakowaniaTabela.Add(c2.ToList());
listOpakowaniaTabela.Add(c3.ToList());
listOpakowaniaTabela.Add(c4.ToList());
for (int i = 0; i < listOpakowaniaTabela[0].Count; i++)
{
string strToAdd = "";
for (int j = 0; j < listOpakowaniaTabela.Count; j++)
{
strToAdd += " " + listOpakowaniaTabela[j][i] + " ";
}
if (mustContains == null)
{
checkedListBox1.Items.Add(strToAdd);
indexes.Add(i);
}
else if (strToAdd.ToLower().Contains(mustContains.ToLower()))
{
checkedListBox1.Items.Add(strToAdd);
indexes.Add(i);
}
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
ladujZBazy(textBox1.Text, true); //false
}
}
}
答案 0 :(得分:1)
您的方法需要两个参数:
void ladujZBazy(string mustContains, bool dropIndexes)
但是您要传递一个参数:
ladujZBazy(null);
要么传递第二个参数,例如:
ladujZBazy(null, false);
或在参数列表中设置default value以使其可选:
void ladujZBazy(string mustContains, bool dropIndexes = false)