Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 由于它';控制台应用程序中的保护级别_C# - Fatal编程技术网

C# 由于它';控制台应用程序中的保护级别

C# 由于它';控制台应用程序中的保护级别,c#,C#,我目前有一个基于控制台的应用程序,我想添加一个简单的不可见表单,这样我就可以在屏幕上画一些线,它工作得很好,但是这些线需要移动,所以它们在刷新时会闪烁很多 我想添加双缓冲控件,但是它说由于保护级别的原因它是不可访问的,通常您会在表单的设计部分启用它,是否有任何方法可以在控制台应用程序中访问它,或者我需要切换到表单应用程序 公共静态表单f; [状态线程] 公共静态void Main(字符串[]args){ f=新形式(); f、 双缓冲=真; f、 负载+=空载; Application.Enab

我目前有一个基于控制台的应用程序,我想添加一个简单的不可见表单,这样我就可以在屏幕上画一些线,它工作得很好,但是这些线需要移动,所以它们在刷新时会闪烁很多

我想添加双缓冲控件,但是它说由于保护级别的原因它是不可访问的,通常您会在表单的设计部分启用它,是否有任何方法可以在控制台应用程序中访问它,或者我需要切换到表单应用程序

公共静态表单f;
[状态线程]
公共静态void Main(字符串[]args){
f=新形式();
f、 双缓冲=真;
f、 负载+=空载;
Application.EnableVisualStyles();
应用程序。运行(f);
}

显示-Control.DoubleBuffered由于其保护级别而无法访问
窗体上的
DoubleBuffered
标记为受保护。这意味着只能从类或从类派生的类访问该值。处理此类值的常规方法是仅从派生类访问它们,如下所示:

静态类程序
{
[状态线程]
静态void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
运行(新的MyForm());
}
}
类MyForm:Form
{
公共MyForm()
{
双缓冲=真;
Load+=新的System.EventHandler(this.Form_Load);
}
无效表单加载(对象发送方、事件参数e)
{
//待办事项
}
}

双缓冲
是声明为私有还是受保护?我想更大的问题是为什么要在控制台应用程序中添加UI?现在,如果有人想从Windows服务、任务计划程序或CI工具运行它,他们不能t@Novahf请注意,现在Anon给出了一个很好的回答,您的控制台应用程序不再假装是GUI