首页 > 解决方案 > WPF ListBox 在事件处理程序上长大?

问题描述

我对使用 C# 非常陌生,这与我的机械技能相去甚远……我在 C# 方面有非常基本的知识,但我真的很愿意推动知识努力。感谢您记住它。

我创建了某种应用程序/ERP 来帮助与我的供应商合作。最终目标是创建供应商列表、他们的技能、咨询 RFQ、更新 RFQ、发送电子邮件……我过去一直在 Excel VBA 中这样做,但现在我愿意建立更强大的东西(并且愿意学习新的东西...)。

首先,我愿意创建一个具有不同类型进程的 ListBox。我希望这个 ListBox 只显示一个 ListBoxItems(一行),当鼠标进入 ListBox 时,将 ListBox 增加到它的全尺寸。(我的目标是!创建一个带有下拉列表的列表框以进行多选:=))

我想这样做的肮脏方式是:

有没有想过?我应该从哪里开始?

然后,我将在我的 ListBox 中选择多个项目。

稍后,我想将 ListBox 内容绑定到数据库(不知道如何在我的计算机上创建它)。

任何帮助是极大的赞赏 !

干杯

编辑:

下面是我的 XAML 代码:

<Window x:Class="ERP_Fournisseurs.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ERP_Fournisseurs"
        mc:Ignorable="d"
        Title="ERP Fournisseurs" Height="450" Width="800">
    <Canvas>
        <TabControl Height="369" Width="734" Canvas.Left="10" Canvas.Top="9">
            <TabItem Header="Ajouter fournisseurs">
                <Canvas Margin="0,0,0,-1">
                    <TextBlock Canvas.Left="10" Name="Fournisseur" TextWrapping="Wrap" Text="Nom fournisseur" Canvas.Top="16" />
                    <TextBox Height="23" Name="NomTXT" Canvas.Left="150" TextWrapping="Wrap" Text="Entrer nom fournisseur" Canvas.Top="14" Width="225" MouseDoubleClick="NomFournisseur_MouseDoubleClick" TextChanged="NomTXT_TextChanged" />
                    <TextBlock Canvas.Left="10" Name="Telephone" TextWrapping="Wrap" Text="Telephone" Canvas.Top="55"/>
                    <TextBox Height="23" Name="TelTXT" Canvas.Left="150" TextWrapping="Wrap" Text="Entrer téléphone fournisseur" Canvas.Top="55" Width="225" MouseDoubleClick="TelTXT_MouseDoubleClick"/>
                    <TextBlock Canvas.Left="10" Name="Mail" TextWrapping="Wrap" Text="Mail" Canvas.Top="84"/>
                    <TextBox Height="23" Name="MailTXT" Canvas.Left="150" TextWrapping="Wrap" Text="Entrer adresse e-mail" Canvas.Top="91" Width="225" MouseDoubleClick="MailTXT_MouseDoubleClick"/>
                    <TextBlock Canvas.Left="10" Name="Adresse" TextWrapping="Wrap" Text="Adresse" Canvas.Top="124"/>
                    <TextBox Height="23" Name="AdresseTXT" Canvas.Left="150" TextWrapping="Wrap" Text="Entrer adresse" Canvas.Top="127" Width="225" MouseDoubleClick="AdresseTXT_MouseDoubleClick"/>
                    <TextBlock Canvas.Left="10" Name="Types" TextWrapping="Wrap" Text="Types" Canvas.Top="157"/>
                    <TextBox Height="23" Name="TypesTXT" Canvas.Left="150" TextWrapping="Wrap" Text="Entrer types" Canvas.Top="162" Width="225" />
                    <TextBlock Canvas.Left="10" Name="Procédés" TextWrapping="Wrap" Text="Procédés" Canvas.Top="194"/>
                    <TextBlock Canvas.Left="10" Name="Matériaux" TextWrapping="Wrap" Text="Matériaux" Canvas.Top="232"/>
                    <TextBlock Canvas.Left="10" Name="Délais" TextWrapping="Wrap" Text="Délais" Canvas.Top="258"/>
                    <TextBlock Canvas.Left="10" Name="Autres" TextWrapping="Wrap" Text="Autres" Canvas.Top="289"/>
                    <TextBox Height="23" x:Name="AutreTXT" Canvas.Left="150" TextWrapping="Wrap" Text="Entrer types" Canvas.Top="289" Width="225" MouseDoubleClick="AutreTXT_MouseDoubleClick"/>
                    <Button Name="AjoutTXT" Content="Ajouter" Height="100" Width="75" Canvas.Left="563" Canvas.Top="107" Click="AjoutTXT_Click"/>
                    <ListBox  Name="ListBoxProc" HorizontalAlignment="Left" VerticalAlignment="Top" Width="181" Height="186" Canvas.Left="409" Canvas.Top="54" Visibility="Hidden" MouseLeave="ListBoxProc_MouseLeave" MouseEnter="ListBoxProc_MouseEnter"  SelectionMode="Multiple">
                        <ListBoxItem>TEST 1</ListBoxItem>
                        <ListBoxItem>TEST 1</ListBoxItem>
                        <ListBoxItem>TEST 1</ListBoxItem>
                        <ListBoxItem>TEST 1</ListBoxItem>
                    </ListBox>
                    <TextBox Height="23" Name="ProcTXT2" Canvas.Left="150" TextWrapping="Wrap" Text="Entrer types" Canvas.Top="196" Width="225" />
                </Canvas>
            </TabItem>
            <TabItem Header="Suivi devis" >
                <Canvas>
                </Canvas>
            </TabItem>
            <TabItem Header="Liste fournisseurs" >
                <Canvas>
                </Canvas>
            </TabItem>
        </TabControl>
    </Canvas>
</Window>

下面是我的 XAML.CS

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace ERP_Fournisseurs
{
    /// <summary>
    /// Logique d'interaction pour MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void NomFournisseur_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            NomTXT.Text = "";
        }

        private void TelTXT_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            TelTXT.Text = "";
        }

        private void MailTXT_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            MailTXT.Text = "";
        }

        private void AdresseTXT_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            AdresseTXT.Text = "";
        }

        private void AjoutTXT_Click(object sender, RoutedEventArgs e)
        {

        }

        private void AutreTXT_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            AutreTXT.Text = "";
        }

        private void ProcTXT_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

        }

        private void NomTXT_TextChanged(object sender, TextChangedEventArgs e)
        {

        }

        private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

        }

        private void MaterTXT_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

        }

        private void ProcTXT_MouseEnter(object sender, MouseEventArgs e)
        {

        }

        private void ListBoxProc_MouseEnter(object sender, MouseEventArgs e)
        {
            ListBoxProc.Visibility = Visibility.Hidden;
        }

        private void ListBoxProc_MouseLeave(object sender, MouseEventArgs e)
        {
            ListBoxProc.Visibility = Visibility.Visible;
        }


        //https://www.c-sharpcorner.com/UploadFile/mahesh/listbox-in-wpf/ Binding ListBox to Data Base
    }
}

我试过的:

标签: wpflistbox

解决方案


推荐阅读