C# 加载表单时,选择某些单选按钮
我有两张表格。我想在加载另一个表单时检查单选按钮(该按钮位于第二个表单中)。我试过了C# 加载表单时,选择某些单选按钮,c#,forms,radio-button,onload,C#,Forms,Radio Button,Onload,我有两张表格。我想在加载另一个表单时检查单选按钮(该按钮位于第二个表单中)。我试过了 OnLoad(radioButton2.Checked) 但它没有起作用。有什么想法吗?你只需设置someRadioButton。选中为true 等待OnLoad没有意义 如果出于某种原因,您确实希望等待加载事件,则需要为该事件添加处理程序并将代码放入处理程序。您只需将someRadioButton.Checked设置为true 等待OnLoad没有意义 如果出于某种原因,您确实希望等待加载事件,则需要为该
OnLoad(radioButton2.Checked)
但它没有起作用。有什么想法吗?你只需设置
someRadioButton。选中为true
等待OnLoad
没有意义
如果出于某种原因,您确实希望等待加载
事件,则需要为该事件添加处理程序并将代码放入处理程序。您只需将someRadioButton.Checked
设置为true
等待OnLoad
没有意义
如果出于某种原因,您确实希望等待加载事件,则需要为该事件添加一个处理程序,并将代码放入该处理程序。如果我理解正确,您的一个表单上有一个单选按钮(我们将其称为form1
,以便能够区分),并希望在加载另一个表单时对其进行更改(我在这里称之为form2
)
您需要记住以下几点:
您需要确保按钮可以从外部访问表单1
。如果两个表单都是同一项目的一部分(我猜是这样),那么您需要确保按钮是受保护的内部
、内部
或公共
中的一个
form1
实际上是一个类;但屏幕上显示的表单不是form1
类本身:它是该类的一个实例。您需要对该实例的引用
要访问对象的成员,请使用
(点)运算符。例如,如果form1
的实例名为myForm1
,则需要键入myForm1.radioButton2
以引用单选按钮。如果省略对象引用,则默认为当前对象(这是其代码正在执行的对象)。因此,当您为form1
键入代码时,可以省略引用,但要从form2
访问它,您需要它(否则,编译器会认为您正在尝试访问form2
中名为“radioButton2”的内容,而该内容可能根本不存在)
单选按钮选中的是一个属性(更具体地说,是一个bool
属性):您可以获取或设置属性的值,但是引用属性而不使用它通常是毫无意义的,在大多数情况下甚至不会编译
如果要执行代码以响应某个事件,则需要注册一个事件处理程序。事件处理程序只是一个函数,返回void
,并接受两个参数(一个对象
和一个EventArgs
或它的某个子类)。可以通过编程方式注册处理程序,但最好从设计器中注册。要创建和注册事件处理程序,请执行以下步骤:
5.1.在设计器上选择表单,然后转到“属性”窗口。
5.2.切换到事件视图(一个小的闪电图标)
5.3.找到要处理的事件。在本例中,OnLoad
,然后双击它。
5.4.瞧!设计器已经为您的新事件处理程序创建了一个方法存根,为事件注册了它,并将您发送到代码视图中,以便您可以填充它
因此,假设您有对form1
实例的引用(我将很快介绍),要标记单选按钮,您需要这样的语句:
myForm1.radioButton2.Checked = true;
radioButton2.Checked = true;
// Code that shows your "form2" goes here.
这将form1
类的myForm1
实例中包含的radioButton2
控件的Checked
属性设置为true
;这将有效地使单选按钮显示为选中状态
现在,让我们来看一个有趣的部分:如何获取对表单的引用?这取决于您(或IDE,代表您)是如何创建表单的。
如果应用程序的启动形式是form1
,并且您坚持使用Visual Studio中的默认方式,那么请查看Studio为您的项目创建的程序
类。那里应该有一个名为Main
的函数。在某个时候,您会看到类似于此的行:
Application.Run(new form1());
newform1()
部分创建一个form1
的新实例,并将其传递给应用程序。Run()
(现在不要太在意这个调用的作用,我们只对引用感兴趣).问题是引用是动态使用的,而不是保存的,但我们可以解决这个问题:在程序
类的主
之外添加类似的内容:
internal static form1 myForm1;
然后用以下两行代码替换应用程序.Run()
调用:
myForm1 = new form1();
Application.Run(myForm1);
调用将做同样的事情,但是通过将其分解为两个步骤,我们可以将引用保存到静态字段myForm1
。
现在,您可以在程序的任何位置使用program.myForm1
引用该表单。因此,在form2
中的OnLoad事件处理程序上,您只需执行以下操作:
Program.myForm1.radioButton2.Checked = true;
尽管如此,如果您正在从form1
中“调用”您的form2
,那么您可以通过在将控件传递给辅助窗体之前选中按钮来节省一些繁琐的工作,如下所示:
myForm1.radioButton2.Checked = true;
radioButton2.Checked = true;
// Code that shows your "form2" goes here.
在这两种情况下,请记住用表单的实际名称替换form1
和form2
希望这能有所帮助。如果我理解正确,您的一个表单上有一个单选按钮(我们将其称为form1
,以便我们能够区分它),并希望在加载另一个表单时对其进行更改(我在这里将其称为form2
)
您需要记住以下几点:
您需要确保按钮可以从外部访问form1
。如果两个表单都是同一个项目的一部分(我猜是这样),那么您需要