Skip to content

Instantly share code, notes, and snippets.

@Cyril-Pop
Created August 16, 2023 08:12
Show Gist options
  • Save Cyril-Pop/27bf9e5e5090361d1e3a1d7a13b57ad4 to your computer and use it in GitHub Desktop.
Save Cyril-Pop/27bf9e5e5090361d1e3a1d7a13b57ad4 to your computer and use it in GitHub Desktop.
import clr
import sys
import System
clr.AddReference("System.Numerics")
#
clr.AddReference('System.Drawing')
clr.AddReference('System.Windows.Forms')
import System.Drawing
import System.Windows.Forms
from System.Drawing import *
from System.Windows.Forms import *
my_path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments)
pf_path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFilesX86)
import time
class MyForm(Form):
#
__namespace__ = f"MyForm_{int(time.time())}"
def __init__(self):
super().__init__()
self.htmlDf = """\
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9">
<style>
table, th, td {font-size:10pt; border:1px solid black; border-collapse:collapse; text-align:left;}
th, td {padding: 5px;}
tr:nth-child(even) {background: #E0E0E0;}
tr:hover {background: silver; cursor: pointer;}
</style>
</head>
<body>
</body>
</html>
"""
self.InitializeComponent()
def InitializeComponent(self):
self._webBrowser1 = System.Windows.Forms.WebBrowser()
self.SuspendLayout()
#
# webBrowser1
#
self._webBrowser1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right
self._webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill
self._webBrowser1.Location = System.Drawing.Point(0, 0)
self._webBrowser1.ScriptErrorsSuppressed = True
self._webBrowser1.Name = "webBrowser1"
self._webBrowser1.Size = System.Drawing.Size(594, 528)
self._webBrowser1.TabIndex = 0
self._webBrowser1.DocumentText = self.htmlDf
self._webBrowser1.DocumentCompleted += self.WebBrowser1DocumentCompleted
#
# Form27
#
self.ClientSize = System.Drawing.Size(600, 540)
self.Controls.Add(self._webBrowser1)
self.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show
self.SizeChanged += self.FormSizeChanged
self.Name = "Form27"
self.Text = "PandasViewer"
def WebBrowser1DocumentCompleted(self, sender, e):
#self._webBrowser1.Size = self._webBrowser1.Document.Body.ScrollRectangle.Size
self._webBrowser1.Document.Body.ScrollIntoView(False)
def FormSizeChanged(self, sender, e):
self._webBrowser1.Size = System.Drawing.Size.Subtract(self.ClientSize, System.Drawing.Size(10, 10))
self._webBrowser1.Document.Body.Width = self.ClientSize.Width - 10
#@property
def get_HtmlText(self):
#print(self.htmlDf)
return self.htmlDf
#@HtmlText.setter
def set_HtmlText(self, value):
self.htmlDf = value
self._webBrowser1.Document.OpenNew(True)
self._webBrowser1.Document.Write(self.htmlDf)
self._webBrowser1.Refresh()
#self.Activate()
HtmlText = clr.clrproperty(str, get_HtmlText, set_HtmlText)
#if "viewerForm" not in dict(globals()): # get global variables
viewerForm = MyForm()
viewerForm.Show()
OUT = viewerForm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment