0

我正在尝试制作一个应用程序,当您单击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);
        }
    }

编辑:终于奏效了。

4

5 回答 5

2

尝试使用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);
            }
        }
    };
于 2013-05-26T05:10:15.820 回答
1

使用文本框中的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);
        }
};
于 2013-05-26T05:07:34.483 回答
1

简单地将TextBox MouseClick事件设置为您想要的方法:

private void textBox1_MouseClick(object sender, MouseEventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.ShowDialog();
    }
于 2013-05-26T05:09:57.940 回答
1

您可以使用鼠标点击事件

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);
        }
}
于 2013-05-26T05:15:26.220 回答
0

只需转到文本框的属性,然后单击事件按钮。你会发现点击事件=空白。单击下拉菜单。选择openToolStripMenuItem_Click,例如,如果您已经在他的程序中打开“打开文件对话框”。

注意:不需要额外的代码

于 2017-08-31T06:33:46.577 回答