webForumDet fria alternativet

Kopiera format i richtextbox

.NETur .NET

1 svar · 382 visningar · startad av saw

sawMedlem sedan mars 20011 880 inlägg
#1

Nu börjar jag att komma in i slutklämmen och det är en sak som jag saknar
(tror jag), nämligen att göra som i Word kopiera format, dvs antag att jag
har en rubrik med en viss font, färg och storlek så skulle jag vilja markera den
den rubriken, klicka på en knapp och markera andra titlar.
Resultatet skulle du bli att den nya markerade rubriken får samma format som
den tidigare.

Jag har hittat en liten kodsnut

private void AddFontStyle(FontStyle style) 
 
{ 
 
     int start = richTextBox1.SelectionStart; 
     int len = richTextBox1.SelectionLength; 
     System.Drawing.Font currentFont; 
     FontStyle fs; 
     for(int i = 0; i < len; ++i) 
     { 
           richTextBox1.Select(start + i, 1); 
           currentFont = richTextBox1.SelectionFont; 
           fs = currentFont.Style; 
           //add style 
           fs = fs | style; 
          richTextBox1.SelectionFont = new Font( 
                currentFont.FontFamily, 
                currentFont.Size, 
                fs 
                ); 
      } 
 } 
 
private void button1_Click(object sender, System.EventArgs e) 
 { 
      AddFontStyle(FontStyle.Bold); 
 }

..men hur jag än fundera så får jag inte ihop det med mina önskemål.
Någon som har något bra förslag? :stud

sawMedlem sedan mars 20011 880 inlägg
#2

Jag har nog lyckats, men jag är säker på att ni kan hitta på ett sätt som
gör mina koder bättre/smidigare.

public bool bcopyFormat = false;
public bool hasFormat = false;
public float iTypsnittsStorlek;
public string fTypsnittNamn;
public string cTypsnittsFarg;
//under toolstrip
case "Kopiera format":
if (bcopyFormat == true)
{
bcopyFormat = false;
hasFormat = false;
toolStripStatusLabel5.Text = "";
}
else
bcopyFormat = true;
break;
//under richTextBoxEx1_MouseUp
if (bcopyFormat == true)
{
richTextBoxEx1.SelectionFont = new Font
(fTypsnittNamn.ToString(), iTypsnittsStorlek, FontStyle.Regular);
}
else
{
fTypsnittNamn = richTextBoxEx1.SelectionFont.Name.ToString();
iTypsnittsStorlek = (float)Convert.ToInt32(richTextBoxEx1.SelectionFont.Size);
cTypsnittsFarg = richTextBoxEx1.SelectionColor.Name.ToString();
sStyle = richTextBoxEx1.SelectionFont.Style.ToString();
hasFormat = true;
}

Vad tror ni om det? ;)

132 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)