C# WinForm UI上txt文件项的动态复选框
早上好, 实际上我有两个问题。我的第一个问题是这叫什么?节目?模块C# WinForm UI上txt文件项的动态复选框,c#,winforms,dynamic,checkbox,text-files,C#,Winforms,Dynamic,Checkbox,Text Files,早上好, 实际上我有两个问题。我的第一个问题是这叫什么?节目?模块 WhatIsThisCalled() { //workToBeDone } 我正在尝试从文本文件中的每个条目创建动态复选框。我试图重用代码,因此我尝试在逻辑文件中创建模块。我觉得我做得对,但我无法测试。我想不出如何引用 this.Controls.Add(chk[I]); 到winForm,我想调用它。我得到的错误是关于它在静态方法中是非法的。我只想清除错误(最后一个),这样我就可以看到它是否会将复选框放在正确的
WhatIsThisCalled()
{
//workToBeDone
}
我正在尝试从文本文件中的每个条目创建动态复选框。我试图重用代码,因此我尝试在逻辑文件中创建模块。我觉得我做得对,但我无法测试。我想不出如何引用
this.Controls.Add(chk[I]);
到winForm,我想调用它。我得到的错误是关于它在静态方法中是非法的。我只想清除错误(最后一个),这样我就可以看到它是否会将复选框放在正确的winForm Permissions.cs上。这是我的Logic.cs模块
public static void getPermText()
{
Stream fileStream = File.Open(dataFolder + PermFile, FileMode.Open);
StreamReader reader = new StreamReader(fileStream);
string line = null;
do
{
line = reader.ReadLine();
if (line == null)
{
break;
}
string[] parts = line.Split('\n');
try
{
int userCount;
userCount = parts.Length;
CheckBox[] chk = new CheckBox[userCount];
int height = 1;
int padding = 10;
for (int i = 0; i <= userCount; i++)
{
chk[i] = new CheckBox();
chk[i].Name = parts.ToString();
chk[i].Text = parts.ToString();
chk[i].TabIndex = i;
chk[i].AutoCheck = true;
chk[i].Bounds = new Rectangle(15, 30 + padding + height, 150, 22);
this.Controls.Add(chk[i]);
height += 22;
}
}
catch
{
}
} while (true);
}
有人能告诉我如何,或者如果可能的话,用动态格式替换权限吗??我想
提前非常感谢您的关注和帮助。我真的很感激。祝你今天愉快!!:) 我很难理解你想说什么。我想您只想引用
复选框应在其中创建的表单
因此,您最好传递要在其上创建控件的窗体的引用:
public static void getPermText(System.Windows.Forms.Form targetForm)
{
//code
targetForm.Controls.Add(chk[i]); //changed "this" to "targetForm"
要调用该方法,请执行以下操作:
WidgetLogic.getPermText(this); //here "this" refers to the current form
现在,无论在何处调用此方法,它都将在窗体上创建控件(作为参数传递的控件)
如果您的问题有误,请通知我。静态
函数:您无法访问静态函数中的任何对象,因此此
在此类静态
函数中不可用。对不起,你的真实意图还不清楚。也许可以尝试重新表述问题/添加更多代码/所需屏幕截图等?请参见@shaharyar下面的答案。这就是我的问题所在。如何访问targetForm。我道歉。我是个新手。我只是想努力做到这一点。:)您的第一个问题是一个私有
构造函数的示例,它通常用于所有内容都是静态
的类中,其中一个空构造函数用于替换默认构造函数,因此该类无法实例化。是!!这正是我想做的。我将很快试用您的代码。回到我真正的工作中:)@shaharyar你觉得你能回答我的第一个问题吗??whatIsThat()调用了什么?称为方法或函数的。但它应该有一个返回类型。奖金!!谢谢你。我想我的方法。我习惯于出类拔萃。这是一个函数,所以我想我不会猜错我会告诉你发生了什么。谢谢,太棒了!!那很好用。现在,我必须仔细阅读代码,找出为什么标签读取system.form而不是文件中的行。很确定我没有增加它们是一个问题。非常感谢。我会把结果贴在这里。祝你今天愉快-DIf您仍然有问题,但与此问题无关。你可以问另一个具体问题
WidgetLogic.getPermText(this); //here "this" refers to the current form