【问题标题】:Error Creating Window Handle in C#在 C# 中创建窗口句柄时出错
【发布时间】:2013-12-10 03:25:03
【问题描述】:

我一直在研究 C# 中的 tabcontrol。我在所有 10 个选项卡中添加了文本框、标签、数据网格视图、面板。当我尝试在文本框中使用自动完成功能时,它给了我一个异常说明“创建窗口句柄时出错-Win32 异常”。以下是我的代码:

    private void textBoxCustomerMNO_Enter(object sender, EventArgs e)
    {

        textBoxCustomerMNO.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
        textBoxCustomerMNO.AutoCompleteSource = AutoCompleteSource.CustomSource;
        AutoCompleteStringCollection CustomerMobileNo = new AutoCompleteStringCollection();

        string Query = "select PATIENT_MNO from MEDICINES_SALE_RECEPIT";
        DataTable CustomerNos = clsConnection.GetDataTable(Query);
        if (CustomerNos.Rows.Count > 0)
        {
            foreach(DataRow row in CustomerNos.Rows)
            {
                CustomerMobileNo.Add(row["PATIENT_MNO"].ToString().Trim());
            }
        }

    }

1。连接类已创建。

【问题讨论】:

  • 哪一行抛出异常?
  • textBoxCustomerMNO.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
  • 第一次执行此代码时抛出异常或什么..?
  • 在表单上加载焦点在 CustomerMNO 文本框(在 Enter 事件中),所以它在一开始就给出了一个异常
  • 仅供参考 - Enter 事件实际上并不是执行 SQL 查询的方法。

标签: c# winforms


【解决方案1】:

当我要在 GotFocus 事件中设置文本框的 AutoCompleteMode 属性时,我遇到了类似的问题。这种行为很奇怪,但是您可以通过在 Enter 事件或 GotFocus 事件之前设置 AutoCompleteMode 属性来轻松解决它,例如在 Form_Load 事件中或通过设计模式下的属性窗口(当然,如果您的文本框是创建并存在于设计模式)。

//put this in your **Form-Load** event:
textBoxCustomerMNO.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
//.. and remove it from the textBoxCustomerMNO_Enter event!

如果您动态创建 textBoxCustomerMNO 文本框,则还要在此处设置 AutoCompleteMode 属性,甚至在定义 Enter 之前:

t = new TextBox();
t.AutoCompleteMode = AutoCompleteMode.SuggestAppend; //set this before Enter event! 
t.Enter += new EventHandler(...)

【讨论】:

    【解决方案2】:

    如果大于0,则释放组件使用的所有资源

            if (this.Handle.ToInt32() > 0)
                {
    
                    if (components != null)
                    {
                        components.Dispose();
                    }
                 }
    

    【讨论】:

      猜你喜欢
      • 2011-10-17
      • 1970-01-01
      • 2017-05-02
      • 2013-01-30
      • 2013-06-02
      • 2017-09-25
      • 1970-01-01
      相关资源
      最近更新 更多