⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 position.cs

📁 C#实现DHTML编辑器功能!
💻 CS
字号:
// DINAMIC XML Editor
//
// Copyright (c) 2002-2003 Dusan Hlavaty
// mailto: duddo@atlas.cz
//
// This software is licensed under the terms of
// GNU General Public license
//
using System;

using XML_editor.TabPages;
using XML_editor.MyForms;

namespace XML_editor.Common
{
	/// <summary>
	/// Trieda, popisujuca poziciu v v dokumente - odkaz (niekam) do dokument.
	/// </summary>
	public class Position : IPosition
	{
	
		/// <summary>
		/// Nazov suboru (aj s cestou), ku ktoremu sa vztahuje tato pozicia
		/// </summary>
		private string   fileName;
		
		/// <summary>
		/// Cislo riadku, na ktory sa vztahuje tato pozicia
		/// </summary>
		private int      line;

		/// <summary>
		/// Poradove cislo znaku v riadku (<see cref="line"/>), na ktory sa vztahuje tato pozicia
		/// </summary>
		private int      column;
		
		/// <summary>
		/// Odkaz na hlavny formular aplikacie
		/// </summary>
		private MainForm mainForm = null;

		// -------------------------------------------------------------------------
		/// <summary>
		/// Odkaz na hlavny formular aplikacie
		/// </summary>
		public MainForm MainForm
		{
			get 
			{
				return this.mainForm;
			}
		}

		// -------------------------------------------------------------------------
		/// <summary>
		/// Cislo riadku, na ktory sa vztahuje tato pozicia
		/// </summary>
		public int Line 
		{
			get 
			{
				return this.line;
			}
		}
		
		// -------------------------------------------------------------------------
		/// <summary>
		/// Poradove cislo znaku v riadku (<see cref="Line"/>), na ktory sa vztahuje tato pozicia
		/// </summary>
		public int Column 
		{
			get 
			{
				return this.column;
			}
		}
		
		// -------------------------------------------------------------------------
		/// <summary>
		/// Nazov suboru (aj s cestou), ku ktoremu sa vztahuje tato uloha
		/// </summary>
		public string FileName 
		{
			get 
			{
				return this.fileName;
			}
		}
		
		// -------------------------------------------------------------------------
		/// <summary>
		/// Inicializuje instanciu triedy <see cref="Position"/>
		/// </summary>
		/// <param name="mainForm">Odkaz na Hlavny formular aplikacie</param>
		/// <param name="fullFileName">Nazov suboru (aj s cestou), ku ktoremu sa vztahuje tato pozicia</param>
		/// <param name="line">Cislo riadku, na ktory sa vztahuje tato pozicia</param>
		/// <param name="character">Poradove cislo znaku v riadku (<paramref name="line"/>), na ktory sa vztahuje tato pozicia</param>
		public Position(MainForm mainForm, string fullFileName, int line, int character)
		{
			this.mainForm = mainForm;
			this.fileName    = fullFileName;
			this.column      = character - 1;
			this.line        = line - 1;
		}
		
		// -------------------------------------------------------------------------
		/// <summary>
		/// Skoci na poziciu v dokumente, ktoru oznacuje
		/// </summary>
		public void JumpToPosition()
		{
#if DEBUG
			System.Diagnostics.Debug.WriteLine("Position.cs :: JumpToPosition() => " + this.ToString());
#endif

			if ((this.FileName == null) || (this.FileName.Length < 1)) 
			{
				return;
			}

			TextAreaTabPage tab = this.MainForm.GetTabPageByFileName(this.FileName);
			if (tab == null) 
			{
				return;
			}

			tab.TextAreaControl.JumpTo(Math.Max(0, line), Math.Max(0, column));
			tab.Selected = true;
#if !LINUX
			tab.Focus();
#endif
		}
	
		// -------------------------------------------------------------------------
		/// <summary>
		/// Skonvertuje instanciu <see cref="Position"/> na string (pre lahsie odladovanie)
		/// </summary>
		/// <returns></returns>
		public override string ToString()
		{
			return String.Format("[Position:File={0}, Line={1}, Column={2}]",
				this.FileName,
				this.Line,
				this.Column);
		}	
	
	
	} // public class Position : ...
} // namespace XML_editor.Common

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -