C# 无法在Visual Studio中的窗体上放置控件

C# 无法在Visual Studio中的窗体上放置控件,c#,winforms,visual-studio,C#,Winforms,Visual Studio,我是Visual Studio Express 2013和C的新手。我借用了一个简单的C Windows应用程序,它构建和运行良好,现在我想向主窗体添加一些对象 我从工具箱中选择一个对象,然后在主窗体的设计器中单击希望它出现的位置。这对一些简单的对象(如Label)很有效,但当我选择OpenFileDialog对象时,表单上不会显示任何内容。一个OpenFileDialog对话框出现在我表单下方的一个栏中,我无法将它拖到我的表单中,因为我得到了一个斜线圆圈 我肯定错过了一些简单的事情。感谢您的帮

我是Visual Studio Express 2013和C的新手。我借用了一个简单的C Windows应用程序,它构建和运行良好,现在我想向主窗体添加一些对象

我从工具箱中选择一个对象,然后在主窗体的设计器中单击希望它出现的位置。这对一些简单的对象(如Label)很有效,但当我选择OpenFileDialog对象时,表单上不会显示任何内容。一个OpenFileDialog对话框出现在我表单下方的一个栏中,我无法将它拖到我的表单中,因为我得到了一个斜线圆圈


我肯定错过了一些简单的事情。感谢您的帮助。

您不能将OpenFileDialog拖到表单中,因为它是非可视控件。 要添加OpenFileDialog,只需双击工具箱中的控件。这将把它添加到表单中。现在要显示对话框,您必须使用代码隐藏中的OpenFileDialog.ShowDialog。下面是一个示例,显示单击按钮时的对话框:

private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "Text Files (.txt)|*.txt|All Files (*.*)|*.*";
DialogResult result=  openFileDialog1.ShowDialog();
if(result==DialogResult.OK)
using (StreamReader reader = new StreamReader(openFileDialog1.FileName))
{
string s = reader.ReadLine();
}
} 

无法将OpenFileDialog拖动到窗体,因为它是非可视控件。 要添加OpenFileDialog,只需双击工具箱中的控件。这将把它添加到表单中。现在要显示对话框,您必须使用代码隐藏中的OpenFileDialog.ShowDialog。下面是一个示例,显示单击按钮时的对话框:

private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "Text Files (.txt)|*.txt|All Files (*.*)|*.*";
DialogResult result=  openFileDialog1.ShowDialog();
if(result==DialogResult.OK)
using (StreamReader reader = new StreamReader(openFileDialog1.FileName))
{
string s = reader.ReadLine();
}
} 

您需要一个使用OpenFileDialog的教程。我希望这将有助于您不是所有的控件都可以放入表单中,这是可以的。您不会将OpenFileDialog放在表单上,因为它从未显示在表单上,而是提供了一个完整的新功能,比如一个新的对话框弹出窗口。其他一些控件(如计时器)也不能作为窗体上的滴管。但您可以像普通控件一样使用这些控件,无需担心:OpenFileDialog不是一个控件。它是一个组件,无法显示该组件。因此,不需要在winform中显示。这就是为什么VisualStudio提供包含所有组件(如计时器控件)的面板。您需要使用OpenFileDialog的教程。我希望这将有助于您不是所有的控件都可以放入表单中,这是可以的。您不会将OpenFileDialog放在表单上,因为它从未显示在表单上,而是提供了一个完整的新功能,比如一个新的对话框弹出窗口。其他一些控件(如计时器)也不能作为窗体上的滴管。但您可以像普通控件一样使用这些控件,无需担心:OpenFileDialog不是一个控件。它是一个组件,无法显示该组件。因此,不需要在winform中显示。这就是为什么VisualStudio提供的面板包含计时器控件等所有组件。我给了您答案,但看起来您应该做一些学习。你为什么不试试像head first c这样的书,这会让你学到基础知识。我给了你答案,但看起来你应该做一些学习。你为什么不试试像head first c这样的书呢,这样你就可以学到基础知识了。