Здесь есть только (3) вещи, которые мне нужно знать. Во-первых, в этой форме есть только (1) кнопка (close_button). Вот мой код frm_main.cs:
public partial class frm_main : Form
{
public_class pc = new public_class();
public frm_main()
{
InitializeComponent();
this.Load += new System.EventHandler(frm_main_Load);
}
private void close_button_Click(object sender, EventArgs e)
{
this.Close();
}
private void frm_main_Load(object sender, EventArgs e)
{
pc.screen_adjust(close_button);
}
}
А вот мой код public_class.cs:
public partial class public_class
{
public int cl_b;
public void screen_adjust(Button b)
{
cl_b = frm_main.ActiveForm.Width;
frm_main.ActiveForm.Width = Screen.PrimaryScreen.Bounds.Width;
frm_main.ActiveForm.Height = Screen.PrimaryScreen.Bounds.Height;
b.Left += frm_main.ActiveForm.Width - cl_b;
}
}
Цель этой программы без полей — автоматически растягивать форму на весь экран. Теперь, что я хотел бы узнать, это:
- Правильно ли я сделал «модуль VB.net» на С#?
- Как мне вызвать методы в public_class.cs без использования 'public_class pc = new public_class();' и 'pc.screen_adjust(close_button);'?
- Например, в public_class.cs, если я хочу изменить текст кнопки close_button, как мне это сделать? В конце концов, я не могу сделать frm_main.close_button...
Спасибо!
public_class.screen_adjust(..)
- person scheien   schedule 11.11.2014b.Text = "Some other text";
- person Corak   schedule 11.11.2014screen_adjust(frm_main form)
. Затем вы можете изменить всеfrm_main.ActiveForm
внутри наform
. Чтобы добраться до кнопки, вы можете попробоватьvar button = form.Controls.Find("button1", false).FirstOrDefault() as Button;
. А потомif (button != null) { button.Text = "New Text"; }
. Но тогда вам также нужно изменитьfrm_main_Load
наpc.screen_adjust(this);
. - person Corak   schedule 11.11.2014Controls.Find("button1", false)
вы ищете все (прямые) дочерние элементы управления с именем button1. Посколькуbutton1
был добавлен кfrm_main
,button1
является дочерним элементомfrm_main
. Это вернет список, поэтому вам, вероятно, нужен первый или нулевой, если нет элемента управления с таким именем. Это то, что делает.FirstOrDefault()
. Возможно, вам придется добавитьusing System.Linq;
, чтобы это сработало. Затем то, что вы получите в ответ, может быть кнопкой, флажком, ярлыком или чем-то еще. Чтобы убедиться, что это кнопка, вы добавляетеas Button
. Теперь, если это не кнопка, она будет нулевой. - person Corak   schedule 11.11.2014Text
. - Как я уже сказал, это немного сложно, но, надеюсь, моя попытка объяснить немного поможет. - person Corak   schedule 11.11.2014