在表单加载之间使用相同的句柄进行控制

剃刀食

我有一个带有在其他应用程序上绘制的控件的表单。每次显示窗口时,其他应用程序加载速度太慢,无法启动。

因此,我提前加载了辅助应用程序。我使用控件句柄作为参数,告诉应用程序要使用哪个句柄。

第一次可以正常工作。当我关闭对话框(单击“确定”按钮,将对话框结果设置为“确定”)并再次打开它时,控件句柄发生了变化。

如何在两次对话框加载之间保持控件句柄相同?

public partial class ListForm : Form
{

FilterDialog filterDialog;

public ListForm()
{
     InitializeComponent();
     filterDialog = new FilterDialog(); //this is where I load my second form, which I draw in
}

我画的对话框

public FilterDialog()
{
    InitializeComponent();
    string applicationlocation = @"...";
    //set the argument
    string hexvalue = btnImage.Handle.ToInt32().ToString("X8");
    process.StartInfo.Arguments = "0x" + hexvalue;
    process.StartInfo.FileName = applicationlocation;
    process.StartInfo.UseShellExecute = false;
    process.Start();
}

private void FilterDialog_Load(object sender, EventArgs e)
{
    if (this.filter != string.Empty)
       txtFilter.Text = filter;
}
杰克

这段代码似乎有效:

class CustomHandleForm : Form
{
    protected override void OnClosed(EventArgs e)
    {
        base.OnClosed(e);
        base.DestroyHandle();
    }

    protected override void DestroyHandle() { }        
}

经过测试:

Form f = new CustomHandleForm();
f.Show();
var h1 = f.Handle;
f.Hide();
f.Show();
var h2 = f.Handle;

Trace.Assert(h1 == h2);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在表单加载之间使用相同的句柄进行控制

来自分类Dev

在MVC控制器之间使用相同的存储过程

来自分类Dev

在活动之间使用相同的对象

来自分类Dev

在页面之间使用相同的视图

来自分类Dev

在类之间使用相同功能的最佳实践

来自分类Dev

是否可以在不同框架之间使用NSNotificationCenter进行通信?

来自分类Dev

Teensy Bord与系统之间使用Python进行的串行通信

来自分类Dev

使用 angular.js 进行表单控制

来自分类Dev

我在sequilize中使用Op.not,我想在相同字段之间使用

来自分类Dev

在活动之间使用SharedPreferences

来自分类Dev

在customModels之间使用$ expand

来自分类Dev

使用委托在表单之间进行通信

来自分类Dev

我可以在C中两个子进程之间使用相同的管道吗?

来自分类Dev

R model.matrix在所有列之间使用相同的因子集

来自分类Dev

如何在Windows设备之间使用相同的随机种子?

来自分类Dev

在Windows和Linux之间使用相同的git存储库会导致额外的提交

来自分类Dev

AWS步骤功能中每个任务之间使用的线程是否相同?

来自分类Dev

在具有相同 PEM 密钥的两台机器之间使用 scp

来自分类Dev

在容器中的同级视图控制器之间使用委托

来自分类Dev

控制器之间使用工厂和Promise共享数据

来自分类Dev

两个控制器之间使用的NSNotification崩溃

来自分类Dev

在初始化期间使用 $rootScope.$emit 在控制器之间传递数据

来自分类Dev

子进程和父进程之间使用pipe()进行管道通信

来自分类Dev

在C#和C ++之间使用双精度数组数据进行P / Invoke

来自分类Dev

在Sicstus 4.2.3和4.3.0之间使用time_out差异进行标记

来自分类Dev

用户之间使用节点应用程序进行消息传递

来自分类Dev

如何在2个角度应用程序之间使用iframe进行通信?

来自分类Dev

我在条件之间使用日期进行不同的结果,日期包括MariaDB中的毫秒精度

来自分类Dev

如何在服务器之间使用不同的公钥进行scp?

Related 相关文章

  1. 1

    在表单加载之间使用相同的句柄进行控制

  2. 2

    在MVC控制器之间使用相同的存储过程

  3. 3

    在活动之间使用相同的对象

  4. 4

    在页面之间使用相同的视图

  5. 5

    在类之间使用相同功能的最佳实践

  6. 6

    是否可以在不同框架之间使用NSNotificationCenter进行通信?

  7. 7

    Teensy Bord与系统之间使用Python进行的串行通信

  8. 8

    使用 angular.js 进行表单控制

  9. 9

    我在sequilize中使用Op.not,我想在相同字段之间使用

  10. 10

    在活动之间使用SharedPreferences

  11. 11

    在customModels之间使用$ expand

  12. 12

    使用委托在表单之间进行通信

  13. 13

    我可以在C中两个子进程之间使用相同的管道吗?

  14. 14

    R model.matrix在所有列之间使用相同的因子集

  15. 15

    如何在Windows设备之间使用相同的随机种子?

  16. 16

    在Windows和Linux之间使用相同的git存储库会导致额外的提交

  17. 17

    AWS步骤功能中每个任务之间使用的线程是否相同?

  18. 18

    在具有相同 PEM 密钥的两台机器之间使用 scp

  19. 19

    在容器中的同级视图控制器之间使用委托

  20. 20

    控制器之间使用工厂和Promise共享数据

  21. 21

    两个控制器之间使用的NSNotification崩溃

  22. 22

    在初始化期间使用 $rootScope.$emit 在控制器之间传递数据

  23. 23

    子进程和父进程之间使用pipe()进行管道通信

  24. 24

    在C#和C ++之间使用双精度数组数据进行P / Invoke

  25. 25

    在Sicstus 4.2.3和4.3.0之间使用time_out差异进行标记

  26. 26

    用户之间使用节点应用程序进行消息传递

  27. 27

    如何在2个角度应用程序之间使用iframe进行通信?

  28. 28

    我在条件之间使用日期进行不同的结果,日期包括MariaDB中的毫秒精度

  29. 29

    如何在服务器之间使用不同的公钥进行scp?

热门标签

归档