Как настроить панель управления winform в C#
Я хочу настроить панель управления моей winform с другим фоном для нее и различными изображениями кнопок. Как я могу это сделать? Есть ли способ сделать пользовательский блок управления с usercontrol или что-то в этом роде, а затем добавить его в winform?
3 ответа
Вы не имеете никакого влияния на это, используя средства.NET Framework. Вы должны будете реализовать пользовательский рисунок для не клиентской области формы. Здесь вам может помочь следующее: http://www.codeplex.com/wikipage?ProjectName=CustomerBorderForm&title=Painting%20NonClient%20Area
Вы можете создавать свои собственные элементы управления, наследуя от UserControl
вот так
class MyControl : System.Windows.Forms.Button //this could also have been System.Windows.Forms.UserControl or any other existing control type as a template
{
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
//Paint whatever you wish on this buttons graphics using e.Graphics
}
}
Существует много возможностей для программирования пользовательских элементов управления. Чтобы много ответить здесь. Хорошая ссылка: http://msdn.microsoft.com/en-us/library/6hws6h2t.aspx
Вы можете создать свой собственный вид контроля форм и скрыть родительский элемент управления. Или, может быть, вы можете унаследовать от System.Windows.Form
и создать пользовательскую форму. Но я никогда не пробовал это сам.
И для использования OnPaint вы должны помнить о некоторых правилах, если вы заботитесь о производительности и / или мерцании и тому подобное: Как правильно использовать OnPaint в приложениях.Net?
Я не знаю, правильно ли я понимаю. Вы хотите создать свой собственный контроль? Если есть, попробуйте это:
- Создайте пользовательский элемент управления.
- Измените тип вашего контроля.
Изменить:
public partial class MyCustomControl : Control { ... }
За:
public partial class MyCustomControl : Form { ... }
- Измените значение свойства Controlbox на false.
- Измените любые свойства, которые вы хотите настроить.
- Создать новую форму.
- Измените тип вашей формы.
Изменить:
public partial class MyForm : Form { ... }
За:
public partial class MyForm : MyCustomControl { ... }
Теперь ваша MyForm похожа на MyCustomControl, и вы можете использовать ее во всех проектах.