سؤال

انا اكتب C# التطبيق (WinForm) مع ListBox وجود المحتوى المضافة من قبل المستخدم.الآن أنا يمكن أن يكون العاديين زر تحت ListBox إلى إزالة العناصر ، ولكن أود أن يكون زر بجانب المحتوى ، وبالتالي يجري داخل ListBox.

مثل هذا:

  • المحتوى 1 | X
  • المحتوى 2 | X
  • ...
  • المحتوى 5 | ×

المشكلة هي أنني يفتقرون إلى الخبرة في .صافي لذلك ليس لدي أي فكرة عن كيفية هذا سيكون ممكنا مع جميع الضوابط الآلية يحدث.لقد بحثت عنه ولكن جاء مع أي نتائج ذات مغزى.

أي تلميحات القرائن أو قصاصات لتحقيق هذا هي موضع ترحيب!:)

هل كانت مفيدة؟

المحلول 2

لذلك يمكن للمرء أن جعل عنصر التحكم المخصص ولكن بالنسبة لي التطبيق ليس حقا يستحق كل هذا العناء.

ما فعلته كان لإنشاء DataGrid جعلت تشبه ListView ولكن مع مضيئة.أنا فعلت هذا لأن DataGrid بالفعل buttoncontrol بنيت في خلاياه.

نعم أنا أعرف, نوع من القبح "هاك" ، لكنه يعمل مثل السحر!:)

الدعائم شاي Erlichmen الذي قادني إلى التفكير في الخارج بلدي مربع القائمة.انظر ماذا فعلت هناك ؟ ;)

نصائح أخرى

بدلا من مربع القائمة يمكنك استخدام ListView, ListView لديه القدرة على إضافة عمود مخصص أنواع.

باستخدام النظام ؛ باستخدام النظام.مجموعات.Generic ؛ باستخدام النظام.يقوم نظام ويندوز.أشكال ؛

مساحة WindowsFormsApplication11 { فئة جزئية العامة Form1 :شكل { قائمة _items = قائمة جديدة () ؛

    public Form1()
    {
        InitializeComponent();

        _items.Add("One");
        _items.Add("Two");
        _items.Add("Three");

        listBox1.DataSource = _items;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        // The Add button was clicked.
        _items.Add("New item " + DateTime.Now.Second);

        // Change the DataSource.
        listBox1.DataSource = null;
        listBox1.DataSource = _items;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        // The Remove button was clicked.
        int selectedIndex = listBox1.SelectedIndex;

        try
        {
            // Remove the item in the List.
            _items.RemoveAt(selectedIndex);
        }
        catch
        {
        }

        listBox1.DataSource = null;
        listBox1.DataSource = _items;
    }
}

}

private void button1_Click(object sender, EventArgs e) { // إضافة زر.// ...

button2.Enabled = true;

}

خاص الفراغ button2_Click(object sender, EventArgs e) { // إزالة زر.// ....

if (listBox1.Items.Count == 0)
{
    button2.Enabled = false;
}

}

على افتراض انها WinForms التطبيق

كنت بحاجة إلى التحكم المخصصة لذلك.أود أن تحقق حول البائعين مثل http://www.devexpress.com/Products/NET/Controls/WinForms/Editors/editors/ListBoxes.xml ربما شخص يعرف من السيطرة تحديدا يفعل ذلك.

أنا لا أعرف لماذا كنت تريد أن تفعل تحديدا ؟ وأود أن وضع زر في أسفل حذف أي من العناصر المحددة في مربع القائمة.التي تعتبر بالطريقة المعتادة من يفعل مثل هذا الشيء إلا إذا كنت ترغب في استخدام مسج ووضع حدث onClick على listbox أن يرسل دعوة إلى حذف البند إذا تم تخزينها في قاعدة البيانات أو إزالة العنصر من القائمة في الصفحة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top