我如何在Textbox_Click事件中执行OpenFileDialog

本文关键字:事件 执行 OpenFileDialog Click Textbox | 更新日期: 2023-09-27 18:15:28

我想做一个应用程序,当你点击TextBox选择文件的OpenFileDialog自动打开,而不需要点击一个按钮。

我所能找到的是这篇msdn文章,没有解释如何实现它。

我应该添加

[BrowsableAttribute(true)]
public event EventHandler Click

?

下面是我的代码:
private void txtFile_TextChanged(object sender, EventArgs e)
    {
        OpenFileDialog OF = new OpenFileDialog();
        OF.InitialDirectory = "C:''";
        OF.Filter = "All files (*) | *.*";
        if (OF.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            OF.FilterIndex = 0;
            OF.RestoreDirectory = true;
            txtFile.Text = (OF.FileName);
        }
    }

EDIT: Finally worked.

我如何在Textbox_Click事件中执行OpenFileDialog

尝试使用OnEnter事件:

在输入控件时发生。

和一个示例代码:

txtFile.Enter += (sender, args) =>
    {
        if(String.IsNullOrEmpty(txtFile.Text))
        {
            var OF = new OpenFileDialog
            {
                InitialDirectory = "C:''",
                Filter = "All files (*) | *.*"
            };
            if (OF.ShowDialog() == DialogResult.OK)
            {
                OF.FilterIndex = 0;
                OF.RestoreDirectory = true;
                txtFile.Text = (OF.FileName);
            }
        }
    };

TextBox MouseClick事件设置为您想要的方法:

private void textBox1_MouseClick(object sender, MouseEventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.ShowDialog();
    }

你可以使用鼠标点击事件

private void textBox1_MouseClick(object sender, MouseEventArgs e)
{
        OpenFileDialog OF = new OpenFileDialog();
        OF.InitialDirectory = "C:''";
        OF.Filter = "All files (*) | *.*";
        if (OF.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            OF.FilterIndex = 0;
            OF.RestoreDirectory = true;
           txtFile.Text = (OF.FileName);
        }
}

在文本框中使用Focus事件显示文件对话框。

一旦控件接收到焦点(点击或选项卡),焦点事件将触发:

txtFile.Focus  += (sender, args) =>
    {
        var OF = new OpenFileDialog
        {
            InitialDirectory = "C:''",
            Filter = "All files (*) | *.*"
        };
        if (OF.ShowDialog() == DialogResult.OK)
        {
            OF.FilterIndex = 0;
            OF.RestoreDirectory = true;
            txtFile.Text = (OF.FileName);
        }
};

直接进入文本框的属性,然后点击事件按钮。您将发现click event = blank。单击下拉菜单。选择openToolStripMenuItem_Click,例如,如果您已经在他的程序中打开了"打开文件对话框"。

注意:不需要额外的代码