我知道已经创建并关闭了一些线程(如2-dimensional Integer array to DataGridView)
我的问题是,因为我只使用控制台应用程序,所以我不知道为了应用代码我需要做什么。
到目前为止,我已经拖放了一个新的dataGridView并选择了program.cs(我的主要部分)作为源。现在,当我在program.cs中应用上述链接中的代码时,visualstudio表示dataGridView1“在当前上下文中不存在”。当我尝试事先声明它时,我得到了无法找到类型/命名空间。有什么想法吗?
答案 0 :(得分:2)
关于你得到的错误:你需要做的就是添加命名空间:using System.Windows.Forms;
以及对它的引用!这适用于控制台应用程序。当然它永远不会出现,但除此之外你可以利用它的能力..
但真正的问题是:您想要实现什么?为什么要坚持使用控制台应用程序?
这并不是说你可能没有充分的理由!例如,有时需要在没有显示屏的情况下运行服务应用程序。这仍然可以从DataGridViews
或Chart
控件创建输出..
但是,当我们在这里回答问题时,完全了解情况总是有帮助的。
以下示例创建并填充DataGridView DGV
,然后将数据图像保存到png
文件。
为此,您还需要添加System.Drawing
。对于Windows.Forms
,您需要添加using子句和引用:
(我这里只有一个德国VS版本;而不是'Aktuell'(即'当前')组,你应该搜索'框架'中的引用!结果是一样的 - 我选择了另一个因为它在截图上没有那么大..)
一旦参考文献到位......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; // <--- add namespace AND reference!!
using System.Drawing; // <--- add namespace AND reference!!
..这个简单的控制台应用程序将编译并运行:
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DataGridView DGV = new DataGridView();
List<string> test = new List<string>()
{ "Anna", "Bertha", "Carol", "Doreen", "Erica", "Fran", "Gisa" };
DGV.Columns.Add("No", "Number");
DGV.Columns.Add("Name", "Name");
DGV.Columns.Add("Age", "Age");
DGV.Columns["Name"].DefaultCellStyle.Font =
new Font(DGV.Font, FontStyle.Bold);
for (int i = 0; i < test.Count; i++) DGV.Rows.Add(new[]
{ (i + 1)+ "", test[i], i + 21 +""}); // cheap string array
DGV.ScrollBars = ScrollBars.None;
DGV.AllowUserToAddRows = false;
DGV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
DGV.RowHeadersVisible = false;
var width = DGV.Columns.GetColumnsWidth(DataGridViewElementStates.None);
DGV.ClientSize = new Size(width,
DGV.ColumnHeadersHeight + DGV.RowCount * (DGV.Rows[0].Height) );
Bitmap bmp = new Bitmap(DGV.ClientSize.Width, DGV.ClientSize.Height);
DGV.DrawToBitmap(bmp, DGV.ClientRectangle);
bmp.Save("D:\\testDGV.png", System.Drawing.Imaging.ImageFormat.Png);
bmp.Dispose();
}
}
}