18306614144 发表于 2025-4-6 19:58

关于MAX与C#窗体交互问题(有偿悬赏)

2900229003


就是我们用C#写了一个窗体,窗体里面有个原生的输入框,然后编译成Dll用MAX脚本加载程序集,加载这个窗口,窗口被加载后窗口的控件事件会被MAX异常捕获,就是我们输入数字,字母,还有退格键,都会被识别成MAX的快捷键,即便窗口是聚焦状态都会被拉到MAX里面去识别成快捷键,

然后我们这边 Application.Run(this); // 启动事件循环,启动事件循环后,控件是正常了,不会被MAX异常捕获了,但是想和MAX交互的时候发现MAX的快捷键全部被C#窗体捕获拦截了,导致MAX的快捷键用不了,两头堵了,


关于C#的源代码如下:
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;


namespace ces
{
    public partial class Form1 : Form
    {
      // 定义按钮事件的委托和事件
      public delegate void ButtonClickedEventHandler();
      public event ButtonClickedEventHandler ButtonClickedEvent;



      public Form1()
      {


            InitializeComponent();


      }



      private void button1_Click(object sender, EventArgs e)
      {

         ButtonClickedEvent?.Invoke(); // 触发委托事件

      }

      public void RunEventLoop()
      {
            Application.Run(this); // 启动事件循环
      }


    }


MAX的脚本代码如下:


如果您能解决请留言联系我,这个对我们非常重要,不白嫖,谢谢!有偿悬赏解决这个问题。

拉破车 发表于 2025-4-7 23:08

这个超出我的理解范围了,哈哈,不懂啊。
页: [1]
查看完整版本: 关于MAX与C#窗体交互问题(有偿悬赏)