江南野鹤 2024-01-03 17:12 采纳率: 33.3%
浏览 40
已结题

wpf嵌入winform后,点击toolStripButton1 无法触发click事件,如何解决?

wpf程序嵌入winform程序,winform中 有toolStripButton1绑定了Click事件 toolStripButton1_Click

winform单独运行,点击toolStripButton1可触发事件

运行wpf,嵌入winform后,点击toolStripButton1 无法触发事件,

而button的事件都可以触发.

求指教谢谢

源代码下载地址: https://files.cnblogs.com/files/simadi/WpfAppControl.zip?t=1704272983&download=true

源代码直接无法下载,拷贝下载地址,粘贴到地址栏再下载,

  • 写回答

13条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-01-03 17:12
    关注

    引自免费微信小程序:皆我百晓生

    问题描述: 在WPF中嵌入WinForms后,点击WinForms中的toolStripButton1无法触发事件。

    解决方案: 请按照以下步骤进行操作:

    1. 确保在WPF中正确地嵌入了WinForms控件。可以使用WindowsFormsHost控件来嵌入WinForms控件。以下是一个示例的XAML代码:
    <Grid>
        <WindowsFormsHost>
            <winForms:YourWinFormsControl x:Name="winFormsControl" />
        </WindowsFormsHost>
    </Grid>
    
    1. 请确保你已经引用了必要的命名空间,例如:
    xmlns:winForms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
    
    1. 创建一个事件处理程序来处理toolStripButton1_Click事件。
    private void toolStripButton1_Click(object sender, EventArgs e)
    {
        // 处理你的逻辑
    }
    
    1. 为WinForms控件的toolStripButton1的Click事件添加处理程序。可以在代码中添加这个处理程序,或者在设计时使用属性面板来实现。确保你的事件处理程序已正确连接到toolStripButton1的Click事件。

    2. 如果你仍遇到问题,请确保你的WinForms控件实例正确地加载到了WindowsFormsHost中。可以在WPF的Loaded事件中添加以下代码来验证:

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        if (winFormsControl == null)
        {
            MessageBox.Show("WinForms control not loaded properly");
        }
    }
    

    请尝试上述解决方案,如果还有其他问题,请提供更多详细信息或代码,以便我能够帮助你更好地解决该问题。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月4日
  • 修改了问题 1月3日
  • 修改了问题 1月3日
  • 修改了问题 1月3日
  • 展开全部