【问题标题】:On listbox double click open new form在列表框上双击打开新表单
【发布时间】:2023-04-03 02:53:01
【问题描述】:

我使用 windowsForms c# 有一个与数据项绑定的列表框...所以根据双击列表框项我希望打开相应的表单...thnx in adv

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 我不知道如何进行,所以需要一些帮助
  • 好的,但我们需要一些上下文。当您说“对应表格”时,您如何识别它?你有一系列表格吗?这些表格有标识符吗?
  • 不,我没有创建表单数组...我刚刚创建了表单...从数据集中我知道必须打开哪个表单...数据集名称和我的表单已创建同名

标签: c# windows winforms


【解决方案1】:

ListBox 有一个 DoubleClick 事件。如果您选择对象,则可以访问它,在Properties 窗口中打开Events 选项卡。

双击它,Visual Studio 将为您创建一个事件处理程序,如下所示:

public void ListBox1_OnDoubleClick(object sender, EventArgs e)
{
    // here is your code
}

现在,您只需输入您的代码。
如果你想打开一个带有相应项目的表单,那么它将是这样的:

public void ListBox1_OnDoubleClick(object sender, EventArgs e)
{
    string text = listBox1.Text; // Don't forget to manipulate with it

    Form1 form = new Form1();
    form.Show();
}

【讨论】:

    【解决方案2】:

    订阅ListBox上的DoubleClick活动

    listBox1.DoubleClick += new System.EventHandler(this.listBox1_DoubleClick);
    
    private void listBox1_DoubleClick(object sender, EventArgs e) 
    {
        // logic here
    }
    

    listBox1.DoubleClick += (s,e) => { /*logic here */}; 
    

    【讨论】:

      【解决方案3】:

      我会使用 MouseDoubleClick 事件,它提供MouseEventArgs 中的光标位置,因此您可以轻松检测到哪个项目被双击。

      void Listbox1_MouseDoubleClick(object sender, MouseEventArgs e)
      {     
              int index = Listbox1.IndexFromPoint(e.Location);
              if (index != ListBox.NoMatches)
              {
                object clickedItem = Listbox1.Items[index];
                // open your form here
              }                
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 1970-01-01
        相关资源
        最近更新 更多