Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Microsoft .NET

  Все выпуски  

RFpro.ru: Microsoft .NET


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Micren
Статус: Практикант
Рейтинг: 461
∙ повысить рейтинг >>
Серг aka umbSSE
Статус: 10-й класс
Рейтинг: 236
∙ повысить рейтинг >>
Evgenijm
Статус: 9-й класс
Рейтинг: 213
∙ повысить рейтинг >>

∙ / КОМПЬЮТЕРЫ И ПО / Языки программирования / Microsoft .NET

Выпуск № 158 от 28.07.2009, 19:35
Администратор рассылки: Alexey G. Gladenyuk, Управляющий
В рассылке: подписчиков - 308, экспертов - 54
В номере: вопросов - 1, ответов - 1

Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
оценить выпуск >>

Вопрос № 170726: Здравствуйте, уважаемые эксперты!Помогите, пожалуйста, в решении проблемы. Я в среде VS2008, пользуясь C#, создал простенький текстовый редактор, на панели инструментов, которого есть checkboxы: Bold, Italic, Underline, Strikeout. Как сделать так,...



Вопрос № 170726:

Здравствуйте, уважаемые эксперты!Помогите, пожалуйста, в решении проблемы. Я в среде VS2008, пользуясь C#, создал простенький текстовый редактор, на панели инструментов, которого есть checkboxы: Bold, Italic, Underline, Strikeout.
Как сделать так,чтобы пользователь, не открывая компонент FontDialog мог создать, к примеру, комбинацию Bold + Italic + Underline, включив три из упомянутых чекбокса?
(При этом желательно, чтобы в FontDialog автоматически включилась опция "жирный курсив" и галочка "подчеркнутый". Или наоборот, при создании такой же комбинации в FontDialogе, отмечались бы соответствущие чекбоксы на панели инструментов)

Отправлен: 23.07.2009, 19:07
Вопрос задал: Парфентьев Александр Анатольевич, Посетитель
Всего ответов: 1
Страница вопроса >>


Отвечает Evgenijm, 9-й класс :
Здравствуйте, Парфентьев Александр Анатольевич.

Я использовал кнопки ToolStrip. Они могут работать и как Checkbox. С длинными текстами возможно моргание (после вызова диалога шрифт меняется несколько раз). Это можно обойти, но код усложнится.

Код:

//файл конструктора
namespace WindowsFormsApplication
{
partial class Form2
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;

/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherw ise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

#region Windows Form Designer generated code

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form2));
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.chkBold = new System.Windows.Forms.ToolStripButton();
this.chkItalic = new System.Windows.Forms.ToolStripButton();
this.chkUnder line = new System.Windows.Forms.ToolStripButton();
this.txtText = new System.Windows.Forms.TextBox();
this.fontDialog1 = new System.Windows.Forms.FontDialog();
this.btnFontDialog = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.toolStrip1.SuspendLayout();
this.SuspendLayout();
//
// toolStrip1
//
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.chkBold,
this.chkItalic,
this.chkUnderline,
this.toolStripSeparator1,
this.btnFontDialog});
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(284, 25);
this.toolStrip1.TabIndex = 0;
this.toolStrip1.Text = "toolStrip1";
//
// chkBold
//
this.chkBold.CheckOnClick = true;
this.chkBold.Displaystyle="System.Windows.Forms.ToolStripItemDisplayStyle.Text;"
this.chkBold.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold);
this.chkBold.Image = ((System.Drawing.Image)(resources.GetObject("chkBold.Image")));
this.chkBold.ImageTransparentColor = System.Drawing.Color.Magenta;
this.chkBold.Name = "chkBold";
this.chkBold.Size = new System.Drawing.Size(23, 22);
this.chkBold.Text = "B";
this.chkBold.CheckedChanged += new System.EventHandler(this.FontTypeChanged);
//
// chkItalic
//
this.chkItalic.CheckOnCli ck = true;
this.chkItalic.Displaystyle="System.Windows.Forms.ToolStripItemDisplayStyle.Text;"
this.chkItalic Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Italic);
this.chkItalic.Image = ((System.Drawing.Image)(resources.GetObject("chkItalic.Image")));
this.chkItalic.ImageTransparentColor = System.Drawing.Color.Magenta;
this.chkItalic.Name = "chkItalic";
this.chkItalic.Size = new System.Drawing.Size(23, 22);
this.chkItalic.Text = "i";
this.chkItalic.CheckedChanged += new System.EventHandler(this.FontTypeChanged);
//
// chkUnderline
//
this.chkUnderline.CheckOnClick = true;
this.chkUnderline.Displaystyle="System.Windows.Forms.ToolStripItemDisplayStyle.Text;"
this.chkUnderline.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Underline);
this.chkUnderline.Image = ((System.Drawing.Image)(resource s.GetObject("chkUnderline.Image")));
this.chkUnderline.ImageTransparentColor = System.Drawing.Color.Magenta;
this.chkUnderline.Name = "chkUnderline";
this.chkUnderline.Size = new System.Drawing.Size(23, 22);
this.chkUnderline.Text = "U";
this.chkUnderline.CheckedChanged += new System.EventHandler(this.FontTypeChanged);
//
// txtText
//
this.txtText.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtText.Location = new System.Drawing.Point(0, 25);
this.txtText.Multiline = true;
this.txtText.Name = "txtText";
this.txtText.Size = new System.Drawing.Size(284, 239);
this.txtText.TabIndex = 1;
//
// btnFontDialog
//
this.btnFontDialog.Displaystyle="System.Windows.Forms.T" oolStripItemDisplayStyle.Text;
this.btnFontDialog.Image = ((System.Drawing.Image)(resources.GetObject("btnFontDialog.Image")));
this.btnFontDialog.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btnFontDialog.Name = "btnFontDialog";
this.btnFontDialog.Size = new System.Drawing.Size(72, 22);
this.btnFontDialog.Text = "Font Dialog";
this.btnFontDialog.Click += new System.EventHandler(this.btnFontDialog_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
//
// Form2
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.F ont;
this.ClientSize = new System.Drawing.Size(284, 264);
this.Controls.Add(this.txtText);
this.Controls.Add(this.toolStrip1);
this.Name = "Form2";
this.Text = "Form2";
this.toolStrip1.ResumeLayout(false);
this.toolStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();

}

#endregion

private System.Windows.Forms.ToolStrip toolStrip1;
private System.Windows.Forms.TextBox txtText;
private System.Windows.Forms.ToolStripButton chkBold;
private System.Windows.Forms.ToolStripButton chkItalic;
private System.Windows.Forms.ToolStripButton chkUnderline;
private System.Windows.Forms.FontDialog fontDialog1;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.F orms.ToolStripButton btnFontDialog;

}
}


Код:

//Файл своего кода
using System;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}

private void FontTypeChanged(object sender, EventArgs e)
{
FontStyle FS = new FontStyle();
if (chkBold.Checked)
FS |= FontStyle.Bold;
if (chkItalic.Checked)
FS |= FontStyle.Italic;
if (chkUnderline.Checked)
FS |= FontStyle.Underline;
txtText.Font = new Font(txtText.Font, FS);
}

private void btnFontDialog_Click(object sender, EventArgs e)
{
fontDialog1.Font = txtText.Font;
if (fontDialog1.ShowDialog(this) == DialogResult.OK)
{
txtText.Font = fontDialog1.Font;
chkBold.Checked = fontDialog1.Font.Bold;
chkItalic.Checked = fontDialog1.Font.Italic;
chkUnderline.Checked = fontDialog1.Font.Underline;
}
}
}
}

Ответ отправил: Evgenijm, 9-й класс
Ответ отправлен: 23.07.2009, 20:31

Оценка ответа: 5

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 252525 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
    оценить выпуск >>

    подать вопрос экспертам этой рассылки >>

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.6 от 21.07.2009

    В избранное