반응형
안녕하세요 여러분.
지금 여러분들은 난 분명 엔트리 kscript01의 글의 링크를 눌렀는데
왜 여기로 와지냐라고 하는분들이 있는데 그게 저니까 빠르게 진행할게요.
소스코드
// 저작권 : 엔트리 Kscipt01
// 꼭 공유하실때에는 저작권을 표시해주시기 바랍니다
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace Notepad
{
public partial class Form1 : Form
{
string filepath = "";
private string filePath;
public Form1()
{
InitializeComponent();
}
private void vkdlfToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void 새로만들기ToolStripMenuItem_Click(object sender, EventArgs e)
{
filePath = "";
if (richTextBox1.Text == "")
{
}
else
{
DialogResult dialogResult = MessageBox.Show("저장하지 않고 계속하시겠습니까?", "Hello COM 메모장", MessageBoxButtons.YesNo);
bool flag = dialogResult == DialogResult.Yes;
if (flag)
{
Form1 main = new Form1();
main.Show();
}
else
{
bool flag2 = dialogResult == DialogResult.No;
if (flag2)
{
if (string.IsNullOrEmpty(filepath))
{
using (SaveFileDialog sfd = new SaveFileDialog() { Filter = "TextDocument | *.txt", ValidateNames = true })
{
if (sfd.ShowDialog() == DialogResult.OK)
{
using (StreamWriter sw = new StreamWriter(sfd.FileName))
{
sw.WriteLineAsync(richTextBox1.Text);
}
}
}
}
else
{
using (StreamWriter sw = new StreamWriter(filePath))
{
sw.WriteLineAsync(richTextBox1.Text);
}
}
}
}
}
}
private void 저장ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(filepath))
{
using (SaveFileDialog sfd = new SaveFileDialog() { Filter = "TextDocument | *.txt", ValidateNames = true })
{
if (sfd.ShowDialog() == DialogResult.OK)
{
using (StreamWriter sw = new StreamWriter(sfd.FileName))
{
sw.WriteLineAsync(richTextBox1.Text);
}
}
}
}
else
{
using (StreamWriter sw = new StreamWriter(filePath))
{
sw.WriteLineAsync(richTextBox1.Text);
}
}
}
private void 열기ToolStripMenuItem_Click(object sender, EventArgs e)
{
using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "TextDocument|*.txt", ValidateNames = true, Multiselect = false })
{
if (ofd.ShowDialog() == DialogResult.OK)
{
using (StreamReader sr = new StreamReader(ofd.FileName))
{
filePath = ofd.FileName;
Task<string> text = sr.ReadToEndAsync();
richTextBox1.Text = text.Result;
}
}
}
}
private void 다른이름으로저장ToolStripMenuItem_Click(object sender, EventArgs e)
{
using (SaveFileDialog sfd = new SaveFileDialog() { Filter = "", ValidateNames = true })
{
if (sfd.ShowDialog() == DialogResult.OK)
{
using (StreamWriter sw = new StreamWriter(sfd.FileName))
{
sw.WriteLineAsync(richTextBox1.Text);
}
}
}
}
private void 인쇄미리보기ToolStripMenuItem_Click(object sender, EventArgs e)
{
printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.ShowDialog();
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawString(richTextBox1.Text, richTextBox1.Font, Brushes.Black, 12, 10);
}
private void 인ToolStripMenuItem_Click(object sender, EventArgs e)
{
printPreviewDialog1.Document = printDocument1;
if (printDialog1.ShowDialog() == DialogResult.OK)
{
printDocument1.Print();
}
}
private void 종료ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void 실행취소ToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.Undo();
}
private void 되돌리기ToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.Redo();
}
private void 잘라내기ToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.Cut();
}
private void 복사ToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.Copy();
}
private void 붙여넣기ToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.Paste();
}
private void 삭제ToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.SelectedText = "";
}
private void 모두선택ToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.SelectAll();
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
if (richTextBox1.Text.Length>0)
{
잘라내기ToolStripMenuItem.Enabled = true;
복사ToolStripMenuItem.Enabled = true;
}
else
{
잘라내기ToolStripMenuItem.Enabled = false;
복사ToolStripMenuItem.Enabled = false;
}
}
private void 줄바꿈ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (줄바꿈ToolStripMenuItem.Checked==true)
{
줄바꿈ToolStripMenuItem.Checked = false;
richTextBox1.WordWrap = false;
}
else
{
줄바꿈ToolStripMenuItem.Checked = true;
richTextBox1.WordWrap = true;
}
}
private void 글시체ToolStripMenuItem_Click(object sender, EventArgs e)
{
fontDialog1.ShowDialog();
richTextBox1.SelectionFont = new Font(fontDialog1.Font.FontFamily, fontDialog1.Font.Size, fontDialog1.Font.Style);
}
private void 텍스트하이라이트ToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.SelectionBackColor = Color.Yellow;
}
private void 도움말보기ToolStripMenuItem_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("https://support.microsoft.com/ko-kr/windows/%EB%A9%94%EB%AA%A8%EC%9E%A5%EC%9D%98-%EB%8F%84%EC%9B%80%EB%A7%90-4d68c388-2ff2-0e7f-b706-35fb2ab88a8c");
}
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Text = "메모장에 오신걸 환영합니다." +
"메모장의 출처는 엔트리 kscript01입니다";
}
}
}
아 근데 소스를 이상태로 붙여넣기하면 오류가 겁나 나니까 툴박스에서 이것들부터 넣으세요
-- richtextbox 넣으시고, 이름을 richTextbox1로 지정
-- openfiledialog
-- savefiledialog
-- printpreviewdialog
-- printdocument
-- printdialog
-- fontdailog
그리고 메뉴스트립을 넣으시고, 이렇게 설정하세여. 한글자라도 틀리면 오류남(소스코드 고치던가)
맨 윗줄엔 이것들 넣으시고:
파일,편집,서식,도움말
각각의 메뉴스크립 아래에 이것들 넣으세요
파일 : 새로 만들기,열기,저장,다른 이름으로 저장,인쇄 미리보기,인쇄,종료
편집 : 실행취소,되돌리기,잘라내기,복사,붙여넣기,삭제 모두선택
서식 : 줄바꿈,글시체,텍스트 하이라이트
도움말 : 도움말 보기
그리고 편집 메뉴의 "잘라내기,복사" 는 속성가서 Enabled를 False로 바꿔주세요.
여기까지 여러분들이 잘 하셨다면 에러는 발생하지 않습니다.
만약 에러가 발생했다면 여러분이 무언가를 잘못 입력하신것입니다.
만일 자신이 모든걸 다 했다. 근데 에러가 발생했다라는 분들은
fanta09tv@gmail.com으로 메일을 보내주시거나 이 글에 댓글을 달아주시기 바랍니다.
이상 이 글을 봐주셔서 감사합니다!
반응형
'코딩' 카테고리의 다른 글
(파이썬) 파이썬으로 로그인 만들기! (3) | 2021.01.18 |
---|