Scroll position and JTextArea

I hava a JFrame with a JScrollPane/JTextArea in it.
I frequently update the textarea with a setText(string), but for every update the scrollbar jumps to the bottom. The things is that I want the scrollbar to remember its position and not change its position after an update.
The string in setText varies in length.
Any ideas, please.
Thanks!!

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ScrollingTest {
  static JTextArea textArea;
  static int updateCount = 0;
  static int i;
  public static void main(String[] args) {
    JButton button = new JButton("add data");
    button.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        updateDisplay();
    JPanel panel = new JPanel();
    panel.add(button);
    textArea = new JTextArea();
    textArea.setMargin(new Insets(10,10,10,10));
    textArea.setLineWrap(true);
    JFrame f = new JFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.getContentPane().add(panel, "North");
    f.getContentPane().add(new JScrollPane(textArea));
    f.setSize(400,300);
    f.setLocation(400,300);
    f.setVisible(true);
  private static void updateDisplay() {
    String text = "";
    for(i = updateCount; i < 40 + updateCount; i++)
      text += String.valueOf(i) + "\n";
    int caretPosition = textArea.getDocument().getLength();
    textArea.setText(textArea.getText() + text);
    updateCount = i;
    textArea.setCaretPosition(caretPosition);
}

Similar Messages

  • Web browser resets scroll position and focus when page load completes

    when a page is loading, the scroll position of the page reverts to the top-left and focus in a form element is lost whenever an element or the whole page finishes loading
    Post relates to: Pre p100eww (Sprint)

    Possibly related to the OP's question, I wish we could get the composition page to scroll when typing a reply here on the forum (while using my Pre plus).
    Quoting a reply fills half the text box, then once I reach the bottom of the box, I can't scroll any further downward to complete my reply...
    WyreNut
    I am a Volunteer here, not employed by HP.
    You too can become an HP Expert! Details HERE!
    If my post has helped you, click the Kudos Thumbs up!
    If it solved your issue, Click the "Accept as Solution" button so others can benefit from the question you asked!

  • Maintain Scroll Position And Focus On Postback for Grids and Child Grids

    I want to implement something like the asp MaintainScrollPositionOnPostback=True but for refreshing screens to the same position after refresh and maintain the focus on the grids/list and child grids/lists selected entries. Is there a way to do this?
    also I am forwarding from the order screen to the review orders screen using "Below Code" and would like to be able to focus on the person the order is for as the selection in the gid/list of the review screen shown
    partial void MedicationOrder_Saved()
    // Write your code here.
    this.Close(false);
    Application.ShowTimesAndMARs();
    //original code
    //Application.Current.ShowDefaultScreen(this.MedicationOrderDetailProperty);

    I want to implement something like the asp MaintainScrollPositionOnPostback=True but for refreshing screens to the same position after refresh and maintain the focus on the grids/list and child grids/lists selected entries. Is there a way to do this?
    I have no idea for this requirement, but I think you could consider implementing the highlighting of GridView row on row click and retain the selected row on postback.

  • How to avoid blinking / moving of rows in a data grid when you restore the scroll positions

    By Default when an update is made on a data grid, it scrolls to top row. To avoid this when we save the vertical and horizontal scroll
    positions and restore the scroll positions after the update, it causes a blink in the grid (or moving / jumping) of rows. Is there a way to
    avoid this jumping of rows?
    In JavaScript this can be achieved by overriding the scrollToTop / OnLoad methods of datagrid to directly scroll to current scroll
    positions instead of top row. Is there a way to achieve similar feature in flex / actionscript?

    I am calling validateNow().. Also, using verticalScrollPosition to restore the scroller as in the link that you posted.. Reposition is working fine, But the bug filed is regarding BLINKING / JUMPING when this happens (i.e. this blinking is caused because after datagrid edit, during reload the scroller tries to move to  the top by default, then it repositions itself to current edited row as the verticalScrollPosition property is overridden ).. I have to get rid of this blinking.
    In Javascript it is dealt by overriding OnLoad method of datagrid to directly scroll to current scroll position instead of top row during reload so that there is no blinking.
    http://www.sencha.com/forum/showthread.php?13898-Is-there-any-way-to-keep-scroll-position- of-Grid-on-load
    Is there a way to achieve similar feature in flex?
    I am not sure what flex datagrid method to override.. Theres no method like load? What is the datagrid method that is called by default during reload (after datagrid edit) that causes the scroller to go to top?

  • How to make bookmark sidebar restore its scrolling position on Firefox start?

    Why does Firefox not restore the bookmark sidebar scrolling position and open bookmark folders to the exact state it had when I closed the browser?
    I admit to having way too many bookmarks, but especially then restoring the scrolling position and open bookmark folders is essential to me.
    Is there any "about:config" setting to adjust this?

    Hello,
    Firefox automatically creates backups of your bookmarks, which can be helpful if your bookmarks are lost or missing. To recover them, follow the instructions below.
    #Use <u>one</u> of these methods to open the Bookmarks Library window:
    #*Click the ''[[Display the Firefox button menu instead of the menu toolbar|Firefox button]]'' to open the menu and click on ''Bookmarks''.
    #*Click the ''Bookmarks'' menu and click on ''Show All Bookmarks''.
    # At the top of the Library window, click the "Import and Backup" menu and select Restore.
    # Click the date of the bookmark backup you want to recover.
    # In the new window that appears, click OK.
    # Your bookmarks from the selected date should now be restored.
    For more information, see the [[Restore bookmarks from backup or move them to another computer]] article. For other solutions, see the [[Recover lost or missing Bookmarks]] article.
    Did this fix your problems? Please report back to us!
    Thank you.

  • Opening a new link in a tab (contr+click or right click and open in new tab) causes ff to lose scroll position in first tab or main website, like google.

    Opening a new link in a tab (contr+click or right click and open in new tab) causes ff to lose scroll position in first tab or main window, like google.
    This does not happen when opening in a new window (shift+click).
    It was never a problem in older versions. I now have ff 3.6.17. I' afraid to install ff4 because everytime i do so (install e new version) something i liked dissapears or good add ons dont work anymore!
    I also don't like the fact that more and more of the adress barr is beïng used for crap i don't need. I'm a visual handicap and need all the space i can, just to read.
    Thanks for helping me out.

    To help other users find solutions, please return to this Thread and '''Sign-in''' to the forum with your Username and Password:
    click on '''"Solved It"''' next to the reply ABOVE that '''BEST''' solved your question
    '''DO NOT click "Solved It" next to this reply

  • Chart Error - scroller positions should be positive and integer

    <p>
    Hello Expert
    I have created a flash chart with two filters on the chart region.
    i) &lsquo;Select list with submit' ----- (:P23_TRC)
    ii) &lsquo;Radio button with submit' -----(:P23_IMPACTC)
    The chart should display as per the filters selection.
    However, I get the error message "<strong>scroller positions should be positive and integer</strong>", once, whenever I load this chart page for the 1st time in a new IE window.
    After I change the filter's value it will work perfectly fine.
    In filters default value is one value from respective filter list of value
    </p>
    <p>
    If I remove the filter conditions from chart query, it works perfectly without error.
    <u>Here are my chart series queries</u>
    select null link, V.LOB label, COUNT(TR) "Customer Care"
    from V_PROCESSTRACKING V
    Where V.ProcessArea like '%Customer Care%' and (V.TR = :P23_TRC) AND ((V.IMPACT = :P23_IMPACTC)OR (:P23_IMPACTC = 'ALL'))
    group by V.LOB
    order by V.LOB
    select null link, V.LOB label, COUNT(TR) "Sales"
    from V_PROCESSTRACKING V
    Where V.ProcessArea like '%Sales%' and (V.TR = :P23_TRC) AND ((V.IMPACT = :P23_IMPACTC)OR (:P23_IMPACTC = 'ALL'))
    group by V.LOB
    order by V.LOB
    <u>Customer XML</u>
    &lt;?xml version = "1.0" encoding="utf-8" standalone = "yes"?&gt;
    &lt;root&gt;
    &lt;type&gt;
    &lt;chart type="Stacked Horizontal 3DColumn"&gt;
    &lt;animation enabled="yes" appearance="size" speed="10" /&gt;
    &lt;hints auto_size="yes"&gt;
    &lt;text&gt;&lt;![CDATA[{NAME}, {VALUE}]]&gt;&lt;/text&gt;
    &lt;font type="Verdana" size="10" color="0x000000" /&gt;
    &lt;/hints&gt;
    &lt;names show="no"/&gt;
    &lt;values show="no" prefix="" postfix="" decimal_separator="." thousand_separator="," decimal_places="0" /&gt;
    &lt;arguments show="no" /&gt;
    &lt;column_chart column_space="3" block_space="12"&gt;
    &lt;border enabled="no" /&gt;
    &lt;block_names enabled="yes" placement="chart" position="left" &gt;
    &lt;font type="Verdana" size="10" color="0x000000" /&gt;
    &lt;/block_names&gt;
    &lt;/column_chart&gt;
    &lt;/chart&gt;
    &lt;workspace&gt;
    &lt;background enabled="yes" type="solid" color="0xffffff" alpha="0" /&gt;
    &lt;base_area enabled="no" /&gt;
    &lt;chart_area enabled="yes" x="215" y="50" width="705" height="500" deep="0"&gt;
    &lt;background enabled="no"/&gt;
    &lt;border enabled="yes" size="1"/&gt;
    &lt;/chart_area&gt;
    &lt;x_axis name="Line of Business" smart="yes" direction="horizontal" rotation="-90" position="left_center" &gt;
    &lt;font type="verdana_embed_tf" size="14" color="0x000099" bold="yes" align="center" /&gt;
    &lt;/x_axis&gt;
    &lt;y_axis name="No. of Process" smart="yes" position="center_bottom" &gt;
    &lt;font type="Verdana" size="14" color="0x000099" bold="yes" align="center" /&gt;
    &lt;/y_axis&gt;
    &lt;grid&gt;
    &lt;values /&gt;
    &lt;/grid&gt;
    &lt;/workspace&gt;
    &lt;legend enabled="yes" x="935" y="50"&gt;
    &lt;names enabled="yes"&gt;
    &lt;font type="Verdana" size="9" color="0x000000" bold="yes"/&gt;
    &lt;/names&gt;
    &lt;values enabled="no"/&gt;
    &lt;scroller enabled="no"/&gt;
    &lt;header enabled="no"/&gt;
    &lt;background alpha="0"/&gt;
    &lt;/legend&gt;
    &lt;/type&gt;
    #DATA#
    &lt;/root&gt;
    <strong>Help please!!!!! It's urgent</strong>
    Sagar
    </p>

    Hi Rima,
    I found the solution,
    My graph is dependent on the page items. What I found was when I load the page, item default value was displayed but it was not stored in the memory. Item value only gets stored in memory when the page is submitted.
    Line: -----
    Soultion : - Create a page level before header process and define the default value over here as well. This will resolve your error.
    Hopefully you understood what I am trying to explain. If not let me know and I will trying to put in picture and email you.
    Sagar

  • How to play a symbol ONCE at a specific scroll position?

    Hello there,
    I was wondering if it's possible to trigger a symbol to play when a user scrolls past a specific scroll point just once?
    I've managed to create a trigger for a symbol which will fire at a specific scroll position but it fires multiple times (when the user continues to scroll)
    I tried using:
    '==' eqivalent to, so that it would only trigger at a certain scroll point, but this only triggers the symbol to play if the user uses their mouse scroll wheel and doesn't play if the user uses the window scrollbar.
    Here's my code (apologies if it's messy I only started learning JQuery a week ago):
    $(window).scroll(function() {
         var mySymbolObject = sym.getSymbol("rollHead");
          var y_scroll_pos = window.pageYOffset;
         var scroll_pos_test = 500;           
        if(y_scroll_pos > scroll_pos_test) {
              sym.$("rollHead").show();
              mySymbolObject.play(1000);
          if(y_scroll_pos < scroll_pos_test) {
       sym.$("rollHead").hide();
              mySymbolObject.stop();
    I know that the '.one' handler (if that's the correct term) can cause an event to trigger just once, but I can't seem to get it to work.
    Any help or advice would be much appreciated.
    Thank you very much.
    Jon
    P.S. I just want to say a MASSIVE thank you to Adobe for making Edge. It is an incredible tool and the fact that it is free makes it a million times better.

    Hello Mr Blix,
    I pretty much just copied and pasted what Elaine wrote.
    So, I went to my stage actions - clicked 'composition ready'
    And put in this:
    sym.setVariable("symbolPlayed", false);
    var mySymbolObject = sym.getSymbol("rollHead");
    $(window).scroll(function() {
        var y_scroll_pos = window.pageYOffset;
        var scroll_pos_test = 500;           
           if(y_scroll_pos > scroll_pos_test) {
    var symbolPlayed = sym.getVariable("symbolPlayed");
    if (!symbolPlayed) {
        sym.$("rollHead").show();
        mySymbolObject.play(1000);
        sym.setVariable("symbolPlayed", true);
    All you'd need to change for you own composition (if that's the right word) is to replace:
    var mySymbolObject = sym.getSymbol("rollHead"); - with your own symbol name.
    var scroll_pos_test = 500;  - with the position you want the event to trigger.
    sym.$("rollHead").show(); - with your own symbol name again.
    mySymbolObject.play(1000) - with the time on your symbol's timeline that you want it to play.
    I'm still learning JQuery and don't really understand how the 'SymbolPlayed' works, but I assure you it does.
    Here's a screengrab of my 'stage actions' code.
    Hope that helps!
    Jon

  • Adjust position and size of textField and button...

    Dear All,
    I have the following sample program which has a few textFields and a button, but the positions are not good. How do I make the textField to be at the right of label and not at the bottom of the label ? Also how to adjust the length of textField and button ? The following form design looks ugly. Please advise.
    import javax.swing.*; //This is the final package name.
    //import com.sun.java.swing.*; //Used by JDK 1.2 Beta 4 and all
    //Swing releases before Swing 1.1 Beta 3.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.text.*;
    import javax.swing.JTable;
    import javax.swing.JScrollPane;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    public class SwingApplication extends JFrame {
    private static String labelPrefix = "Number of button clicks: ";
    private int numClicks = 0;
    String textFieldStringVEHNO = "Vehicle No";
    String textFieldStringDATEOFLOSS = "Date of Loss";
    String textFieldStringIMAGETYPE = "Image Type";
    String textFieldStringIMAGEDESC = "Image Description";
    String textFieldStringCLAIMTYPE = "Claim Type";
    String textFieldStringSCANDATE = "Scan Date";
    String textFieldStringUSERID = "User ID";
    String ImageID;
    public Component createComponents() {
    //Create text field for vehicle no.
    final JTextField textFieldVEHNO = new JTextField(5);
    textFieldVEHNO.setActionCommand(textFieldStringVEHNO);
    //Create text field for date of loss.
    final JTextField textFieldDATEOFLOSS = new JTextField(10);
    textFieldDATEOFLOSS.setActionCommand(textFieldStringDATEOFLOSS);
    //Create text field for image type.
    final JTextField textFieldIMAGETYPE = new JTextField(10);
    textFieldIMAGETYPE.setActionCommand(textFieldStringIMAGETYPE);
    //Create text field for image description.
    final JTextField textFieldIMAGEDESC = new JTextField(10);
    textFieldIMAGEDESC.setActionCommand(textFieldStringIMAGEDESC);
    //Create text field for claim type.
    final JTextField textFieldCLAIMTYPE = new JTextField(10);
    textFieldCLAIMTYPE.setActionCommand(textFieldStringCLAIMTYPE);
    //Create text field for scan date.
    final JTextField textFieldSCANDATE = new JTextField(10);
    textFieldSCANDATE.setActionCommand(textFieldStringSCANDATE);
    //Create text field for user id.
    final JTextField textFieldUSERID = new JTextField(10);
    textFieldUSERID.setActionCommand(textFieldStringUSERID);
    //Create some labels for vehicle no.
    JLabel textFieldLabelVEHNO = new JLabel(textFieldStringVEHNO + ": ");
    textFieldLabelVEHNO.setLabelFor(textFieldVEHNO);
    //Create some labels for date of loss.
    JLabel textFieldLabelDATEOFLOSS = new JLabel(textFieldStringDATEOFLOSS + ": ");
    textFieldLabelDATEOFLOSS.setLabelFor(textFieldDATEOFLOSS);
    //Create some labels for image type.
    JLabel textFieldLabelIMAGETYPE = new JLabel(textFieldStringIMAGETYPE + ": ");
    textFieldLabelIMAGETYPE.setLabelFor(textFieldIMAGETYPE);
    //Create some labels for image description.
    JLabel textFieldLabelIMAGEDESC = new JLabel(textFieldStringIMAGEDESC + ": ");
    textFieldLabelIMAGEDESC.setLabelFor(textFieldIMAGEDESC);
    //Create some labels for claim type.
    JLabel textFieldLabelCLAIMTYPE = new JLabel(textFieldStringCLAIMTYPE + ": ");
    textFieldLabelCLAIMTYPE.setLabelFor(textFieldCLAIMTYPE);
    //Create some labels for scan date.
    JLabel textFieldLabelSCANDATE = new JLabel(textFieldStringSCANDATE + ": ");
    textFieldLabelSCANDATE.setLabelFor(textFieldSCANDATE);
    //Create some labels for user id.
    JLabel textFieldLabelUSERID = new JLabel(textFieldStringUSERID + ": ");
    textFieldLabelUSERID.setLabelFor(textFieldUSERID);
    Object[][] data = {
    {"Mary", "Campione",
    "Snowboarding", new Integer(5), new Boolean(false)},
    {"Alison", "Huml",
    "Rowing", new Integer(3), new Boolean(true)},
    {"Kathy", "Walrath",
    "Chasing toddlers", new Integer(2), new Boolean(false)},
    {"Mark", "Andrews",
    "Speed reading", new Integer(20), new Boolean(true)},
    {"Angela", "Lih",
    "Teaching high school", new Integer(4), new Boolean(false)}
    String[] columnNames = {"First Name",
    "Last Name",
    "Sport",
    "# of Years",
    "Vegetarian"};
    final JTable table = new JTable(data, columnNames);
    table.setPreferredScrollableViewportSize(new Dimension(500, 70));
    //Create the scroll pane and add the table to it.
    JScrollPane scrollPane = new JScrollPane(table);
    //Add the scroll pane to this window.
    getContentPane().add(scrollPane, BorderLayout.CENTER);
    final JLabel label = new JLabel(labelPrefix + "0 ");
    JButton buttonOK = new JButton("OK");
    buttonOK.setMnemonic(KeyEvent.VK_I);
    buttonOK.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
              try {
    numClicks++;
              ImageID = textFieldVEHNO.getText() + textFieldDATEOFLOSS.getText() + textFieldIMAGETYPE.getText();
    label.setText(labelPrefix + ImageID);
              ScanSaveMultipage doScan = new ScanSaveMultipage();
              doScan.start(ImageID);
         catch (Exception ev)
    label.setLabelFor(buttonOK);
    * An easy way to put space between a top-level container
    * and its contents is to put the contents in a JPanel
    * that has an "empty" border.
    JPanel pane = new JPanel();
    pane.setBorder(BorderFactory.createEmptyBorder(
    20, //top
    30, //left
    30, //bottom
    20) //right
    pane.setLayout(new GridLayout(0, 1));
         pane.add(textFieldLabelVEHNO);
         pane.add(textFieldVEHNO);
         pane.add(textFieldLabelDATEOFLOSS);
         pane.add(textFieldDATEOFLOSS);
         pane.add(textFieldLabelIMAGETYPE);
         pane.add(textFieldIMAGETYPE);
         pane.add(textFieldLabelIMAGEDESC);
         pane.add(textFieldIMAGEDESC);
         pane.add(textFieldLabelCLAIMTYPE);
         pane.add(textFieldCLAIMTYPE);
         pane.add(textFieldLabelDATEOFLOSS);
         pane.add(textFieldDATEOFLOSS);
         pane.add(textFieldLabelUSERID);
         pane.add(textFieldUSERID);
    pane.add(buttonOK);
         pane.add(table);
    //pane.add(label);
    return pane;
    public static void main(String[] args) {
    try {
    UIManager.setLookAndFeel(
    UIManager.getCrossPlatformLookAndFeelClassName());
    } catch (Exception e) { }
    //Create the top-level container and add contents to it.
    JFrame frame = new JFrame("SwingApplication");
    SwingApplication app = new SwingApplication();
    Component contents = app.createComponents();
    frame.getContentPane().add(contents, BorderLayout.CENTER);
    //Finish setting up the frame, and show it.
    frame.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    frame.pack();
    frame.setVisible(true);

    Post Author: Ranjit
    CA Forum: Crystal Reports
    Sorry but, i've never seen formula editor for altering position and size. If you know one please navigate me.
    I guess you have updated formula editor beside "Lock size and position" - if yes its not right. There is only one editor beside 4 items and editor is actually for Suppress.
    Anyways, A trick to change size a position is:
    Create 4-5 copies (as many as you expect positions) of the text object. place each at different positions,  right click, Format, Suppress and in formula editor for suppress write the formula: If your condition is true, Suppress=false, else true.
    Position will not change but user will feel; for different conditions -position is changed
    Hope this helps.
    Ranjit

  • Web page in iframe does not maintain scroll position on refresh in FF4

    I have a web page on my local drive which refreshes live sports commentary every minute in an iframe.
    In FF3.6.x the page in the iframe retained the scroll position of where I had moved to.
    In FF4 the page within the iframe goes back to the top so I now have to scroll down every time to where I want to read.
    I disabled all addins in FF4 and have tried this on different URLs but the page in the iframe still returns to the top.

    Similar problem running a 27" iMac only it occurs in Excel and inDesign. Hit the cell with the curser and the worksheet moves over to the right 7 or 8 cells away. Have to curser back to the cell quite frequently. This issue make the machine unusable when working with those two aps. Today I did the ultimate and completely reloaded Yosemite and the problem is still there.

  • Wpf/webbrowser:-how to get height,width,scroll height and scroll width of render html/xhtml/xml pages.

    hi I am using to web browser control to get  height,width,scroll height and scroll width in wpf c#.
    Could You please tell me how to achive this information if .pages contain this css on body.
     style="-webkit-column-width:800px;  margin-right:800px; -moz-column-width: 800px; column-width: 800px; -webkit-column-gap: 0px; -moz-column-gap: 0px; column-gap: 0px; -webkit-column-rule: 0px solid #000;-moz-column-rule: 0px solid #000;column-rule:
    0px solid #000; height:800px; overflow:visible !important; ; margin:0px; -moz-margin:0px;-webkit-margin:0px;display:block;"
    I have to get height,width,scroll height and scroll width  on on complete event.
    this is MainWindow.xaml page
    <Window x:Class="WPFWebBrowserInvokeScript.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="820" Width="820" Loaded="Window_Loaded">
        <Grid>
            <WebBrowser HorizontalAlignment="Left"
       Height="800"
       Margin="10,10,0,0"
       VerticalAlignment="Top"
       Width="800"
       Name="MainBrowser"/>
            <!--<Grid x:Name="grid1"></Grid>-->
        </Grid>
    </Window>
    this  MainWindow.xaml.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using System.IO;
    namespace WPFWebBrowserInvokeScript
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
            public MainWindow()
                InitializeComponent();
            private void Window_Loaded(object sender, RoutedEventArgs e)
                string strHtml = "";
                using (StreamReader sr = new StreamReader("D:/epubunzip/ePub2_Sample03a_USgovernment_SE_Gr9-12_EN_U1/OPS/9780547451381_c01.html"))
                    strHtml = sr.ReadToEnd();
                    strHtml = strHtml.Replace("<body>", "<body  style=\"-webkit-column-width:800px; overflow:visible !important;  -moz-column-width: 800px; column-width: 800px; -webkit-column-gap:
    0px; -moz-column-gap: 0px; column-gap: 0px; -webkit-column-rule: 0px solid #000;-moz-column-rule: 0px solid #000;column-rule: 0px solid #000; height:800px; ; margin:0px; -moz-margin:0px;-webkit-margin:0px;display:block;\">");
                    string str = "<script> function execScript(){return document.body.scrollWidth;}</script></head>";
                    strHtml = strHtml.Replace("</head>", str);
                    byte[] bytes = Encoding.UTF8.GetBytes(strHtml);
                    MemoryStream ms = new MemoryStream();
                    ms.Write(bytes, 0, bytes.Length);
                    ms.Position = 0;
                    MainBrowser.NavigateToStream(ms);
                    //MainBrowser.NavigateToString(strHtml);
                    MainBrowser.LoadCompleted += new LoadCompletedEventHandler(MainBrowser_LoadCompleted);
            void MainBrowser_LoadCompleted(object sender, NavigationEventArgs e)
    //here I am trying to get  height,width,scroll height and scroll width
    //It's gtting wrong info
              WebBrowser webBrowser = (WebBrowser)sender;
                //mshtml.htmld webDocument = (mshtml.HTMLDDElement)webBrowser.Document;
                //mshtml.HTMLBody webBody = (mshtml.HTMLBody)webDocument;
                //    var dd = webDocument.InvokeScript("execScript");
                //    //  string script = "document.body.style.overflow ='hidden'";         
                //    // var dd = webDocument.InvokeScript("execScript", new Object[] { script, "JavaScript" });
                //    var elems = webBrowser.Document.GetElementsByTagName("body");
                //    System.Windows.Forms.HtmlElement webBody = (System.Windows.Forms.HtmlElement)webDocument.Body;
           

    >>if i am rendering html from MemoryStreamor string in webbrowser control in wpf It's not applying this css
    Yes it does. If you for example add background-color: yellow; to the stlyle you will see that the page turn yellow:
    strHtml = strHtml.Replace("<body>", "<body style=\"-webkit-column-width:800px; background-color: yellow; overflow:visible !important; -moz-column-width: 800px; column-width: 800px; -webkit-column-gap: 0px; -moz-column-gap: 0px; column-gap: 0px; -webkit-column-rule: 0px solid #000;-moz-column-rule: 0px solid #000;column-rule: 0px solid #000; height:800px; ; margin:0px; -moz-margin:0px;-webkit-margin:0px;display:block;\">");
    If the styles doen't get applied as expected it is a browser issue. The WebBrowser control emulates Internet Explorer in IE7 rendering mode by default.  You will have to change some registry settings to change this behaviour. Please refer to the following
    links for more information:
    http://weblog.west-wind.com/posts/2011/May/21/Web-Browser-Control-Specifying-the-IE-Version
    https://social.msdn.microsoft.com/Forums/vstudio/en-US/cf66e0cd-ab6f-45b8-b230-1d78f26670d2/opening-links-from-wpf-webbrowser-control-in-default-browser-instead-of-ie?forum=wpf
    -moz-column-width only works in FireFox for example.
    You may also navigate to an actual page and inject some javascript function that for example adds the styles to the body element dynamically or set the style properties of the body element directly:
    private void Window_Loaded(object sender, RoutedEventArgs e)
    MainBrowser.Navigate(@"E:/Epubs/ePub2_Sample05_Biology_SampleChapter_EN/OPS/ch01.xhtml");
    MainBrowser.LoadCompleted += new LoadCompletedEventHandler(webb_DocumentCompleted);
    private void webb_DocumentCompleted(object sender, NavigationEventArgs e)
    WebBrowser webBrowser = (WebBrowser)sender;
    dynamic doc = webBrowser.Document;
    //int _scrollWidth = (int)webBrowser.InvokeScript("execScript");
    //mshtml.HTMLDocument webDocument = (mshtml.HTMLDocument)webBrowser.Document;
    mshtml.HTMLScriptElement script = (mshtml.HTMLScriptElement)doc.createElement("script");
    script.setAttribute("type", "text/javascript");
    script.innerHTML = "function doSomething(){ /* do something here... */ }";
    //add script to the head
    dynamic head = doc.getElementsByTagName("head")[0];
    head.appendChild(script);
    mshtml.HTMLBody body = (mshtml.HTMLBody)doc.getElementsByTagName("body")[0];
    body.style.background = "yellow";
    //set any body.style property here...
    webBrowser.InvokeScript("doSomething");
    That's about it as far as WPF is concerned.
    Please remember to mark helpful posts as answer and/or helpful.

  • How to solve the flash Builder 4.6 scroll view and textinput  display problem?

    I have a dynamic form application which worked well on flash builder 4.5, having display problems in flash builder 4.6 now. What I did is adding
    TextInput objects  to a scroll view and set the texts for them dynamically. Everything is fine after the screen loaded. But if I scroll down, sometimes the texts will be placed in wrong positions. I attached the screen copy of the wrong display. Does anybody know how to solve this problem? Thanks.

    Check out the two threads below (if you have not already). I have not tried it but aeonus describes an approach that made me think of something that might work ... It is a workaround but, what if you have a text field (txtA) with the skin that does not allow soft keyboard selection, but does scroll correctly, and on the onClick event of that text field, you dynamically cover it with another text field (txtB) that does allow soft keyboard selection, (but does not scroll properly) and trigger the keyboard. After you get the entry from the user, set the value of txtA and destroy txtB ... leaving you (theoretically) with properly scrolling text fields. If you have a lot of those in your app, you might want to write a component that implements that behavior.
    "Create a dynamic textfield, and on click, invoke create a StageText instance at the same location as the textfield (by setting the StageText.viewPort property)
    Finally, set StageText.softKeyboardType to "numeric" and call StageText.assignFocus();"
    http://forums.adobe.com/thread/915019?tstart=0
    http://forums.adobe.com/thread/911214?tstart=0

  • Scroll Positions do not work if Scroll Policy is 'off'

    I am using flex SDK 3.3.0.4852
    I have a canvas with
    canvas.horizontalScrollPolicy = "off";
    canvas.verticalScrollPolicy = "off";
    This canvas has an image in it, and I set the horizontal and vertical scroll positions programitically.
    canvas.horizontalScrollPosition = canvas.maxHorizontalScrollPosition;
    canvas.verticalScrollPosition = canvas.maxVerticalScrollPosition;
    then I save the scroll values in an xml file, and then on reopening of the xml file.. I do the following
    canvas.addEventListener("creationComplete", setScrollPositions);
    and in the method setScrollPositions(event) i do the following again
    canvas.horizontalScrollPosition = canvas.maxHorizontalScrollPosition;
    canvas.verticalScrollPosition = canvas.maxVerticalScrollPosition;
    But unfortunately it does not show any change in the scroll positions visually, and the default scroll positions persists. Though if i call an alert
    Alert.show(canvas.verticalScrollPosition.toString()); //it does show me some value, e.g. 56
    Now if i only set horizontal and vertical scrollPolicy = "on" ... all works fine. But the problem is that I want to hide my scrollbars and there is no other way I can do it. So please if there is any solution to it or if there is any workaround, do let me know. Thanks.

    i'm having the same problem and i just got a brand new dell..when i hold down the left click over the up or down arrows, my songs in itunes only go down one line rather than scrolling up or down while im holding down the left click...any help is appreciated..

  • Vertical scrolling, move and resize image? Is that possible?

    My homepage has a copy of the company logo, large in the center of the page. When I scroll down, I want the logo to move up into the menu and display as a smaller size.
    How can I achieve that?

    Hi Katloubee Yes it is possible in muse. Simply you have to play with opacity in the scrolling effects panel.Mae your first image invisible when you scroll down.
    Firstly you have to place your image and then use the scroll bar effects, make it stuck on the header panel, set its opacity to 0% at initial position and 100% at final. Its not that complicated as I tried to explain it
    If still having trouble, than look for tutorials on adobe tv, regarding scrolling effects & opacity..
    Cheers..!

  • Accordion Widget not saving current scroll position

    Accordion widget saves scroll position in Firefox, however in
    IE7 the position gets reset to the center of Accordion Widget.
    Example. Select Alabama and then select Wisconsin to see
    effect.
    See www.Qualite1.com/contactUs.html

    Hi ghaug,
    This is due to the tabindex attribute that is on the
    top-level element of the accordion. Apparently when an element is
    focused in IE, it tries to make sure the top of that element is in
    view, so it is "conveniently" scrolling it into view for you.
    To prevent this behavior for accordions like yours that don't
    fit neatly into a single screen, you are going to have to remove
    the tabindex attribute from the top-level accordion element. If you
    still want/need keyboard navigation of your accordion, then you
    have to switch to using links in your accordion tabs. You can find
    an example here:
    http://labs.adobe.com/technologies/spry/samples/accordion/AccordionSample.html#EnablingKey boardNavigationWithLinks
    --== Kin ==--

Maybe you are looking for

  • Exception_Access_Violation error while exporting report to excel

    Hello Experts, We have BO 6.5 report designer. We have few reports developed on BO 6.5. While exporting these reports to excel an error occurs with below error message: Unhandled exception Code: C0000005 Description : Exception_Acess_Violation It see

  • Down Payments in Work Lists

    Hi, will the collections Management pulls the Down Payments in to work list? or not? at what level it will pull the down payments into work list? Where can i check the down payments details in Collections Management? Please advise me Thanks

  • Performance of Database

    Hi all , I a, having 9.2.0.6.0. database. when developers executes some batch job(running around 1 hour).They are saying it is responding very slow.Which view i need to check what wait events are there and caluse of slowness .Like where i need to fin

  • How do you block cookies

    How can I block all/3rd party cookies in Safari 5.1.4? I've tried Privacy options; however, it appears blocking does not work. Any thoughts?

  • Oracle Toplink Jaxb mapping

    Hi, i try to use the developer Preview 3(10.1.3.0)workbench and it work fine with simple java class (two xml files generation). But with java servlet who use the same classes nothing work i got some exception : 05/03/01 08:24:33 exceptionProvider ora