예제 #1
0
        private void txtCmd_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (string.IsNullOrEmpty(txtCmd.Text))
                {
                    return;
                }

                if (txtCmd.Text == "clear")
                {
                    txtOutput.Clear();
                    if (!txtCmd.Items.Contains(txtCmd.Text))
                    {
                        txtCmd.Items.Add(txtCmd.Text);
                    }
                    txtCmd.Text = string.Empty;
                    return;
                }

                DatatreeDotNet.dt_clear_command(command);
                DatatreeDotNet.dt_parse_command(command, OnError, txtCmd.Text);
                IntPtr ret = IntPtr.Zero;
                DatatreeDotNet.dt_query_status_t status = DatatreeDotNet.dt_query(DatatreeDotNet.dt_root_value(datatree), command, ref ret);
                if (status == DatatreeDotNet.dt_query_status_t.DTQ_GOT_NOTHING)
                {
                }
                else if (status == DatatreeDotNet.dt_query_status_t.DTQ_GOT_REF || status == DatatreeDotNet.dt_query_status_t.DTQ_GOT_NOREF)
                {
                    string str = Util.FormatValue(datatree, ret, false);
                    Message("Queried:" + Environment.NewLine + str + Environment.NewLine);
                    if (status == DatatreeDotNet.dt_query_status_t.DTQ_GOT_NOREF)
                    {
                        DatatreeDotNet.dt_destroy_value(datatree, ret);
                    }

                    if (!txtCmd.Items.Contains(txtCmd.Text))
                    {
                        txtCmd.Items.Add(txtCmd.Text);
                    }
                }

                txtCmd.Text = string.Empty;
            }
        }